System.Math单位定义常数

MinExtended80Denormal


我可以使用给定的rtl函数将此数字转换为字符串吗?

我试过了

FormatFloat('#.##############E+####', System.math.MinExtended80Denormal)


导致


  000000000000000E + 00000


我也尝试过使用较大的非规格化值,但是内置格式化功能似乎不支持此类值(指数为零)。

最佳答案

使用系统内置的打印功能,它可以工作:

uses
  Math;
var
  s:String;
begin
  Str(MinExtended80Denormal,s);
  WriteLn(s);
  WriteLn(MinExtended80Denormal);
  Str(MinExtended80Denormal:26:-1,s);
  WriteLn(s);
  WriteLn(MinExtended80Denormal:26:-1);
end.


输出:

3.64519953188247E-4951
3.64519953188247E-4951
3.64519953188247460E-4951
3.64519953188247460E-4951




常量MinExtended80Denormal定义为:3.64519953188247460253e-4951
因此,最好的结果是除最后三个小数点外的所有数字。



我也尝试了WriteLn(MinExtended80Denormal.ToString),但这给了0

10-08 04:43