加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 单,双和精度

发布时间:2020-12-15 04:32:26 所属栏目:大数据 来源:网络整理
导读:我知道存储单个值(或双倍)不能非常精确.所以存储例如125.12可以得到125.1200074788.现在在delphi中,它们是一些有用的函数,如samevalue或comparevalue,它们将epsilon作为参数,并说125.1200074788或例如125.1200087952是相等的. 但我经常在代码中看到如下:如
我知道存储单个值(或双倍)不能非常精确.所以存储例如125.12可以得到125.1200074788.现在在delphi中,它们是一些有用的函数,如samevalue或comparevalue,它们将epsilon作为参数,并说125.1200074788或例如125.1200087952是相等的.

但我经常在代码中看到如下:如果aSingleVar = 0那么……事实上,我认为总是有效.为什么?为什么在单个var中存储0例来保持准确值?

解决方法

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

将125.12与单个(或双精度)精度变量进行比较很可能总是返回False,因为文字125.12将被视为扩展精度数,并且没有单个(或双精度)精度数具有这样的值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读