3 / 3 / 0
Регистрация: 14.08.2013
Сообщений: 65
|
|
1 | |
Приложение с различными десятичными разделителями17.05.2017, 09:40. Показов 851. Ответов 8
Доброе всем утро!
Вопрос возник такой: как правильно написать приложение, в котором будут использоваться разные десятичные разделители, в зависимости от установленного в системе? Например. На моём компьютере установлена запятая (",") - работает без ошибок. На втором - точка и тут возникают проблемы... P.S. принудительно пробовал менять точки на запятые в коде программы в TextBox'ах, но потом отказался от этой идеи - не работает так. Или предварительно считывать, какой установлен разделитель и уже его применять в коде?
0
|
17.05.2017, 09:40 | |
Ответы с готовыми решениями:
8
Проблемы с десятичными разделителями Как работать с TStringList с различными разделителями Создать приложение - каталог медиафайлов, с различными функциями просмотра Как создать полноценное приложение на WinApi с различными элементами (textbox.) подскажите книгу |
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|
17.05.2017, 10:51 | 2 |
Использовать всегда один разделитель. При преобразовании в число указывать культуру, в которой осуществлять преобразование. Самый удобный вариант - CultureInfo.InvariantCulture.
Для ввода чисел использовать NumericUpDown
0
|
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|
17.05.2017, 11:40 | 4 |
Enzo1987, потому что вводить нужно через точку. Так уж сложилось, что в информатике десятичным разделителем является точка. Отображать ты можешь как угодно, а вот обрабатывать только точку. Ну а если у тебя от этого падает программа, то это проблема программы, а не контрола.
vb.net снисходительно относится к конвертированию между типами данных, но в один прекрасный день эта снисходительность выходит боком.
0
|
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|
17.05.2017, 13:23 | 6 |
0
|
117 / 110 / 31
Регистрация: 05.04.2014
Сообщений: 224
|
||||||
17.05.2017, 19:10 | 7 | |||||
Когда-то использовал такой код для получения чисел, которые хранятся в базе данных в текстовых полях.
num("0,3", 1) 0,3 может быть передано и как 0.3. Функция заменяет точку или запятую на системный разделитель. После этого проверяет, является ли полученный результат числом, если нет, то результат выполнения равен 0. И затем преобразует в число с указанным количеством десятичных знаков.
2
|
307 / 248 / 40
Регистрация: 28.09.2013
Сообщений: 600
|
|
18.05.2017, 19:18 | 8 |
Не должно ничего выщелкивать. Вы вручную забиваете или через стрелки?
Признаюсь, ни разу с вылетом программы при использовании NUD не сталкивался, несмотря на разные культуры(
0
|
144 / 132 / 34
Регистрация: 28.02.2014
Сообщений: 159
|
||||||
19.05.2017, 07:34 | 9 | |||||
Можно и так попробовать:
2
|
19.05.2017, 07:34 | |
19.05.2017, 07:34 | |
Помогаю со студенческими работами здесь
9
Работа с десятичными дробями Действия с десятичными дробями Операции с десятичными дробями Индексы с двумя десятичными знаками Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |