"Если вдруг открылся люк, не пугайся, это глюк!" (с) Если что-то работает не так, вы нашли ошибку или опечатку в программе — вам в этот раздел
СергейВБР
После обновления до версии от 1 марта, этот кусок кода перестал работать:
Код: Выделить всё
begin
mLogScript(inttostr(trunc(strtofloat('192.16'))), 'Почему равно 0?');
end.

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

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

Спасибо за наблюдение.
СергейВБР
У вас серверная часть удаленно сама обновляется?
т.к. как только установил обновление 6.8.0 - этот пример заработал, и я изменил скрипты для работы с числами с точкой.
С сегодняшнего утра числа с точкой вновь перестали преобразовываться, и пришлось возвращаться к числу с запятой. С утра из значимого - только Win10 - установил обновление "Накопительное обновление для Windows 10 Version 1607 для систем на базе процессоров x64, 2018 05 (KB4103723)" и комп перезагрузился. После этого, в районе обеда (через промежуток 4 часа), скрипты где числа с точкой начали быковать.
Вложения
2018-05-23_160911.jpg
2018-05-23_160911.jpg (159.52 КБ) Просмотров: 2051
Аватара пользователя
Алексей Пикуров
Нет, сервер вы обновляете сами. Если у вас такая свистопляска с локалями в течение дня — смотрите в сторону настроек Windows.
СергейВБР
Какая свистопляска?
Я локалей в винде не меняю. Как стояла русская, так и стоит.
Зачем вообще в интерпретаторе привязка к локалям?
Вы вроде делали:
Поставил принудительно точку, чтобы скрипты единообразно работали на разных системах. Будет в будущей сборке.

Так о какой свистопляске речь?
Вложения
2018-05-23_162645.jpg
2018-05-23_162645.jpg (141.68 КБ) Просмотров: 2050
Аватара пользователя
Алексей Пикуров
Сервер у вас не менялся, но скрипт работает по-разному в разное время. Я не знаю, почему так. Попробую разобраться.
Аватара пользователя
Алексей Пикуров
Сделаны дополнения

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