Страница 1 из 1

strtofloat - сломали

СообщениеДобавлено: Сб мар 17, 2018 10:36 pm
СергейВБР
После обновления до версии от 1 марта, этот кусок кода перестал работать:
Код: Выделить всё
begin
mLogScript(inttostr(trunc(strtofloat('192.16'))), 'Почему равно 0?');
end.

Выдает в логе 0 - почему?

Re: strtofloat - сломали

СообщениеДобавлено: Пн мар 19, 2018 2:41 pm
Алексей Пикуров
Здравствуйте. Дробное число пишется через запятую. Хотя должно работать и через точку. Не знаю, почему сейчас работает только через запятую.

Re: strtofloat - сломали

СообщениеДобавлено: Пн мар 19, 2018 2:56 pm
СергейВБР
Раньше работало. Скрипт перестал работать после обновления от 1 марта.
По поводу запятых - в справке ни слова об этом, + в примерах везде точки:
Код: Выделить всё
var
  sValue: string;
  x: extended;
begin
  sValue := '123.456E+002';
  x := strtofloat(sValue);
  mLogScript('StrToFloat = ' + inttostr(trunc(x)), '');
end.

Re: strtofloat - сломали

СообщениеДобавлено: Пн мар 19, 2018 2:57 pm
Алексей Пикуров
Да, я в курсе. Попробуем разобраться.

Re: strtofloat - сломали

СообщениеДобавлено: Пн мар 19, 2018 3:39 pm
Алексей Пикуров
Разобрался. Всё дело в системных локалях, в английской разделитель дробного числа — точка, в русской — запятая.

Поставил принудительно точку, чтобы скрипты единообразно работали на разных системах. Будет в будущей сборке.

Спасибо за наблюдение.

Re: strtofloat - сломали

СообщениеДобавлено: Ср май 23, 2018 4:18 pm
СергейВБР
У вас серверная часть удаленно сама обновляется?
т.к. как только установил обновление 6.8.0 - этот пример заработал, и я изменил скрипты для работы с числами с точкой.
С сегодняшнего утра числа с точкой вновь перестали преобразовываться, и пришлось возвращаться к числу с запятой. С утра из значимого - только Win10 - установил обновление "Накопительное обновление для Windows 10 Version 1607 для систем на базе процессоров x64, 2018 05 (KB4103723)" и комп перезагрузился. После этого, в районе обеда (через промежуток 4 часа), скрипты где числа с точкой начали быковать.

Re: strtofloat - сломали

СообщениеДобавлено: Ср май 23, 2018 4:22 pm
Алексей Пикуров
Нет, сервер вы обновляете сами. Если у вас такая свистопляска с локалями в течение дня — смотрите в сторону настроек Windows.

Re: strtofloat - сломали

СообщениеДобавлено: Ср май 23, 2018 4:33 pm
СергейВБР
Какая свистопляска?
Я локалей в винде не меняю. Как стояла русская, так и стоит.
Зачем вообще в интерпретаторе привязка к локалям?
Вы вроде делали:
Поставил принудительно точку, чтобы скрипты единообразно работали на разных системах. Будет в будущей сборке.

Так о какой свистопляске речь?

Re: strtofloat - сломали

СообщениеДобавлено: Ср май 23, 2018 4:37 pm
Алексей Пикуров
Сервер у вас не менялся, но скрипт работает по-разному в разное время. Я не знаю, почему так. Попробую разобраться.

Re: strtofloat - сломали

СообщениеДобавлено: Ср май 23, 2018 6:30 pm
Алексей Пикуров
Сделаны дополнения

Я попробовал на разных локалях и ОС, работает одинаково. Ожидайте обновление.