Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2017, 12:45   #1
schVladimir
Новичок
Джуниор
 
Регистрация: 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.
schVladimir вне форума Ответить с цитированием
Старый 04.01.2017, 13:14   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от schVladimir Посмотреть сообщение
Поменял системный блок
Полагаю, что проблем в том, какой десятичный разделитель используется в операционной системе. До смены системного блока в вашей системе использовалась точка, после смены (ОС тоже поменялась, как я понял) - запятая. Для эксперимента попробуйте заменить точку запятой и повторить операцию.

ИМХО, более грамотный способ - обработать такие строки, путём замены того символа, разделяющего целую часть от дробной, величиной decimalSeparator (там хранится символ-десятичный разделитель, заданный в настройках ОС). Вот у меня, например, там хранится запятая.

Цитата:
установил delphi 6, хотя и в delphi 7 то же самое происходит
Я бы всё же оставил Delphi 7. Мне говорили, что старые Делфи чётных версий работают со сбоями, нечётные - нормально. Я этому человеку я верю.

Последний раз редактировалось Вадим Мошев; 04.01.2017 в 13:18.
Вадим Мошев вне форума Ответить с цитированием
Старый 04.01.2017, 18:47   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Да, у меня такой же прикол как-то случился.
Для переносимости программ лучше конечно использовать DecimalSeparator .

А посмотреть, что у вас в ОС - вот так:
Изображения
Тип файла: jpg ds.jpg (76.7 Кб, 153 просмотров)
type_Oleg вне форума Ответить с цитированием
Старый 04.01.2017, 19:00   #4
schVladimir
Новичок
Джуниор
 
Регистрация: 04.01.2017
Сообщений: 2
По умолчанию

Спасибо!
Я как чайник искал, а ответ то очень простой был...Я уже и сам сменил раскладку клавиатуры и в этом и была собака зарыта.
Всё работает как надо. И тем не менее я благодарен!
Удачи и с НОВЫМ ГОДОМ!
schVladimir вне форума Ответить с цитированием
Старый 04.01.2017, 20:05   #5
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от schVladimir Посмотреть сообщение
Удачи и с НОВЫМ ГОДОМ!
Спасибо, вас так же.
Вадим Мошев вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не изменяется интерфейс моей программы при переходе с 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