When working with fractional numbers and expect non-integer result, specify it in the code by placing a dot after each number or specifying a result type.

 

MSL uses a default delimiter of an integer and fractional part — a dot, not depending on the current system local language.

 

Example


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.


Script work result

[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"): Script operation time: 6 ms

[17:02:14] (Run "FloatTest"): Script done successfully.

 

See also

FloatToStr

mLogScript

Converting types