Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Mikle
Зарегистрирован: 10.01.2005 Сообщения: 5 Откуда: Москва
|
Добавлено: Пн Мар 07 2005 16:18 Заголовок сообщения: Подскажите методы борьбы с запятой |
|
|
Во многих формах в поля ввода должны вводиться числовые данные. Однако вот беда, в американском формате десятичный разделитель - это точка ("."), а в русском - это запятая (","). Знак который вводится как десятичный разделитель зависит от настроек Винды (вклядка "Язык и раскладка"). При английском раскладе будет допустим 3.14, при русском 3,14. При программировании воспринимаются только числа с ".". Сейчас мои программы влоб преобразуют строки из полей ввода, заменяя там "," на ".", после чего идёт преобразование строки в число.
Может кто знает более быстрый и удобный способ работы с ","? |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
DmitryShm
Зарегистрирован: 17.11.2003 Сообщения: 211 Откуда: Казань
|
Добавлено: Вт Мар 08 2005 10:37 Заголовок сообщения: На чем пишешь? |
|
|
Решение может состоять в том, чтобы прямо или косвенно использовать WinAPI, работающий с локалью. Самым удачным было бы использование .NET, или любой другой грамотный фреймворк (можно и J2EE) . Тогда такие мелкие вопросы бы не возникали. Если не использовать фреймворки, то ответ один: WinAPI. Тем более, что все реализации фреймворков для Windows используют WinAPI, просто это грамотно скрыто за хорошими семействами классов. _________________ love IT |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Mikle
Зарегистрирован: 10.01.2005 Сообщения: 5 Откуда: Москва
|
Добавлено: Вт Мар 08 2005 14:17 Заголовок сообщения: |
|
|
А можно поподробней?
С помощью WinAPI, как я понимаю, можно определить символ разделителя, менять символ разделителя и заставлять программу работать с числами у которых символ десятичного разделителя не ".". Но вот что это за API ф-и???
Насчёт .NET. Какие классы отвечают за эту работу??? |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
grayrat
Зарегистрирован: 30.06.2003 Сообщения: 189
|
Добавлено: Ср Мар 09 2005 20:01 Заголовок сообщения: DecimalSeparator |
|
|
Если пишешь в борланде, то есть такая глобальная переменная, DecimalSeparator. Берёшь, и хоть мягкий знак ей присваиваешь в качестве десятичного разделителя в начале программы. В других средах должна быть аналогичная. Поупражняйся в словообразовании английского языка, глядишь, что нибудь найдешь по поиску |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Wladimir
Зарегистрирован: 02.03.2005 Сообщения: 150 Откуда: Ставропольский край
|
Добавлено: Ср Мар 09 2005 21:13 Заголовок сообщения: |
|
|
>Если пишешь в борланде, то есть такая глобальная переменная, DecimalSeparator
Точнее сказать, в VCL. Не всякий борланд - VCL.
В том же модуле, кстати, есть и другие аналогичные по назначению переменные.
В стандарте С++ определён набор локалей (#include <locale>).
В начале программы определяешь setlocale(LC_...), и форматные функции используют выбранный набор подстановок. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
|