gpt4 book ai didi

delphi - 单精度、 double 和精度

转载 作者:行者123 更新时间:2023-12-03 14:51:32 33 4
gpt4 key购买 nike

我知道存储单个值(或 double 值)不可能非常精确。因此,例如存储 125.12 可能会得到 125.1200074788。现在在delphi中,它们是一些有用的函数,例如samevalue或comparevalue,它们以epsilon为参数并表示125.1200074788或例如125.1200087952相等。

但我经常在代码中看到类似这样的内容:if aSingleVar = 0 then ...事实上,正如我所见,这总是有效的。为什么 ?为什么将例如 0 存储在单个变量中保持精确值?

最佳答案

只有 m*2^e 形式的值(其中 m 和 e 是整数)可以存储在浮点变量中(但不是全部,这取决于精度)。 0 有这种形式,而 125.12 没有,因为它等于 3128/25,而 1/25 是不是 2 的整数次幂。

125.12 与单(或双)精度变量进行比较很可能始终返回 False,因为文字 125.12 将被视为扩展精度数,任何单(或双)精度数都不会有这样的值。

关于delphi - 单精度、 double 和精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41779801/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com