Delphi FloatToStr – 为什么显示器不同?
|
使用DEFAULT FloatToStr函数
FloatToStr('0.0000442615029219009')
输出 4.42615029219009E-5 小数点后丢一个零 FloatToStr('0.000442615029219009')
产生 0.000442615029219009 有人可以解释为什么第二种情况下的值不输出 4.42615029219009E-4 解决方法
documentation for
FloatToStr包含答案:
要解释该语句,您还需要参考topic describing the
不幸的是,文档实际上存在错误.而不是0.00001,它应该是0.0001.这个程序说明了这一点: program FloatToStrScientificFixed;
{$APPTYPE CONSOLE}
uses
System.SysUtils;
var
d: Double;
begin
d := 0.0001;
Writeln(FloatToStr(d*0.9999999));
Writeln(FloatToStr(d));
Writeln(FloatToStr(d*1.0000001));
Readln;
end.
对于您的示例,0.0000442615029219009小于0.0001,因此使用科学记数法进行格式化.但是0.000442615029219009大于0.0001,因此使用固定表示法进行格式化. 如果您希望输出始终使用科学记数法,请使用e format string格式化. QC#107388 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
