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


У 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

Функції перетворення типів