|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.01.2017, 12:45 | #1 |
Новичок
Джуниор
Регистрация: 04.01.2017
Сообщений: 2
|
[Delphi]: после смены системного блока при обработке строки '1234.375' ф-ция StrToFloat выдаёт ошибку 1234.375 is not valid floating point value
Поменял системный блок, установил delphi 6, хотя и в delphi 7 то же самое происходит. Мне нужно распаковывать большой динамический массив строковых переменных и в этом массиве много переменных типа extended. Вот пример;
var s:string; x:extended; begin s:='1234.375'; x:=StrToFloat(s); end; Компиляция нормально всё. Но при исполнении выдаётся ошибка:1234.375 is not valid floating point value. А раньше эта известная функция StrToFloat работала при конвертации строковых переменных без проблем. Подскажите мне, в чем дело? Последний раз редактировалось Вадим Мошев; 04.01.2017 в 13:03. |
04.01.2017, 13:14 | #2 | |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
Полагаю, что проблем в том, какой десятичный разделитель используется в операционной системе. До смены системного блока в вашей системе использовалась точка, после смены (ОС тоже поменялась, как я понял) - запятая. Для эксперимента попробуйте заменить точку запятой и повторить операцию.
ИМХО, более грамотный способ - обработать такие строки, путём замены того символа, разделяющего целую часть от дробной, величиной decimalSeparator (там хранится символ-десятичный разделитель, заданный в настройках ОС). Вот у меня, например, там хранится запятая. Цитата:
Последний раз редактировалось Вадим Мошев; 04.01.2017 в 13:18. |
|
04.01.2017, 18:47 | #3 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,499
|
Да, у меня такой же прикол как-то случился.
Для переносимости программ лучше конечно использовать DecimalSeparator . А посмотреть, что у вас в ОС - вот так: |
04.01.2017, 19:00 | #4 |
Новичок
Джуниор
Регистрация: 04.01.2017
Сообщений: 2
|
Спасибо!
Я как чайник искал, а ответ то очень простой был...Я уже и сам сменил раскладку клавиатуры и в этом и была собака зарыта. Всё работает как надо. И тем не менее я благодарен! Удачи и с НОВЫМ ГОДОМ! |
04.01.2017, 20:05 | #5 |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не изменяется интерфейс моей программы при переходе с Delphi 7 на Delphi 2010 | Elvisnya | Общие вопросы Delphi | 3 | 28.04.2011 15:59 |
На Delphi 7 сделать игру кто хочет стать миллионером в delphi 7 | 666dart666 | Помощь студентам | 11 | 04.11.2010 17:57 |
Rad Studio 2011 XE: новое в Delphi, C++ Builder, RadPHP и Delphi Prism | savva-paladin | Софт | 18 | 02.10.2010 20:24 |
Delphi. Как нарисовать в Delphi два движущиеся шара с определенной скоростью? | redred | Общие вопросы Delphi | 10 | 11.12.2007 10:43 |
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? | dagarik | БД в Delphi | 7 | 22.10.2007 17:54 |