Formatfloat如何工作?

sps*_*pli 1 delphi format floating-point

在这段代码中:

FormatFloat('0.##########',XX.AsFloat)
Run Code Online (Sandbox Code Playgroud)

如果数据库中的值XX是12.12345,它将返回什么值?
#的数量超过5位小数,那么它会进行额外的舍入吗?
我找不到这方面的文件FormatFloat.

我也想知道是什么.AsFloat.

War*_* P 9

当我跑它时,我找到了FormatFloat('0.###########',12.123456) = 12.123456.所以没有尾随空格,也没有额外的0.您不能将这一个案例外推到一般规则,因为有很多浮点值无法用二进制表示.所以一般的答案是你会得到一个数字,在十进制数的左边至少有一个数字,你将得到一个小数位和右边的可变小数位数,或者没有小数放在一起.

除了熟悉IEEE浮点编码以及二进制浮点数值存储的局限性之外,没有合理的方法来预测它.例如,尝试上面的1.0,你得到'1'并且没有小数位.

AsFloat是一个对象的方法,如果你想知道它是如何实现的,并且你没有告诉我们XX是什么类型,我们不能告诉你.但是你不需要问我们,你可以按Ctrl +点击它.

另一天,另一个提到每个计算机科学家应该知道的关于浮点运算的内容