在此代码中:

FormatFloat('0.##########',XX.AsFloat)


如果数据库中的XX值为12.12345,它将返回什么值?
#的位数超过5位小数,是否会进行额外的舍入?
我找不到此FormatFloat的文档。

我也想知道.AsFloat的作用。

最佳答案

当我运行它时,找到FormatFloat('0.###########',12.123456) = 12.123456。因此,没有尾随空格,也没有多余的0。不过,您无法将这种情况推算为一般规则,因为存在很多无法完全用二进制表示的浮点值。因此,通常的答案是,您将获得一个数字,该数字至少要在小数点应到的位置的左边,并且您将得到一个小数位,在右边有一个可变的小数位数,或者没有小数的地方。

除了具有对IEEE浮点编码的深入了解以及二进制浮点数字存储的局限性之外,没有其他合理的方法来进行预测。例如,使用1.0尝试上述操作,您将得到'1'并且没有小数位。

AsFloat是对象的一种方法,如果您想知道它是如何实现的,并且由于您没有告诉我们XX类型是什么,我们也不能告诉您。但是您无需询问我们,只需按Ctrl +单击它即可。

改天,又转介到What Every Computer Scientist Should Know About Floating-Point Arithmetic

10-08 00:50