"Для разработчиков", "Серверные скрипты", "Скриптовый язык MSL", "Работа с дробными числами".

 

При работе с дробными числами, когда ожидается, что результат может быть не целым, указывайте в коде это явно, ставя точку после каждого числа в выражении или указывая тип результата при приведении типов.

 

В MSL используется стандартный разделитель целой и дробной части — точка, вне зависимости от текущей системной локали операционной системы.

 

Пример

var
  x, y, z: extended;
  d1, d2: integer;
begin
  x := 10/3.0;
  mLogScript(FloatToStr(x), '');
  
  y := 10;
  z := 17;
  x := y/z;
  mLogScript(FloatToStr(x), '');
  
  mLogScript(FloatToStr(10/4), '10/4');
  mLogScript(FloatToStr(10/4.0), '10/4.0');
  mLogScript(FloatToStr(10/9.9), '10/9.9');
  
  mLogScript(FloatToStr(10/100), '10/100');
  mLogScript(FloatToStr(10/100.0), '10/100.0');
  mLogScript(FloatToStr(0.1234), '0.1234');
  
  d1 := 10;
  d2 := 17;
  mLogScript(FloatToStr(d1/extended(d2)), '');
end.

Результат работы скрипта

[17:02:14] (Log "FloatTest"): 3.33333333333333

[17:02:14] (Log "FloatTest"): 0.588235294117647

[17:02:14] (Log "FloatTest"): [10/4] 2

[17:02:14] (Log "FloatTest"): [10/4.0] 2.5

[17:02:14] (Log "FloatTest"): [10/9.9] 1.01010101010101

[17:02:14] (Log "FloatTest"): [10/100] 0

[17:02:14] (Log "FloatTest"): [10/100.0] 0.1

[17:02:14] (Log "FloatTest"): [0.1234] 0.1234

[17:02:14] (Log "FloatTest"): 0.588235294117647

[17:02:14] (Run "FloatTest"): Время выполнения скрипта: 6 мс

[17:02:14] (Run "FloatTest"): Скрипт выполнен успешно.

Ещё посмотреть

FloatToStr

mLogScript

Функции преобразования типов