Страница 1 из 1
Error, string is not float!
Добавлено: 29 ноя 2006, 19:42
Dr_Grizzly
Такая вот проблема, есть поле куда пользователь вводит вещественные числа, проблема в том, что на разных операционках, в зависимости от настройки, разные знаки разделения либо . либо , из-за этого прога просто вылетает.
Как можно узнать какой знак нужно ставить для разделения дробной части?
Или как можно заблокировать вывод этой ошибки, и просто поправить на противоположный знак?
Re: Error, string is not float!
Добавлено: 29 ноя 2006, 23:21
AiK
В Sysutils есть переменная с именем DecimalSeparator. В начале приложения задай ей нужный символ. Должно помочь.
Re: Error, string is not float!
Добавлено: 29 ноя 2006, 23:26
Хыиуду
Более аскетичный вариант: считывать из строки посимвольно в некий буфер символы, пока они числовые, потом пропустить все нечисловые, потом в другой буфер считать снова числовые. Получим отдельно целую и дробную часть. Правда, дробную еще надо разделить на 10 в соответствующей степени
Re: Error, string is not float!
Добавлено: 30 ноя 2006, 13:50
Лелик_1044
AiK писал(а):В Sysutils есть переменная с именем DecimalSeparator. В начале приложения задай ей нужный символ. Должно помочь.
ДА делай так допустим в cretaeform
DecimalSeparator:='.';
Re: Error, string is not float!
Добавлено: 01 дек 2006, 13:24
Dr_Grizzly
Отлично! А вот и решение:
на OnKeyPress пишем:
If key=',' or '.' then
key:=DecimalSeparator;
Гы, и тот и другой вариант в одном
