当前位置:  开发笔记 > 编程语言 > 正文

单,双和精度

如何解决《单,双和精度》经验,为你挑选了1个好方法。

我知道存储单个值(或双倍)不能非常精确.所以存储例如125.12可以得到125.1200074788.现在在delphi中,它们是一些有用的函数,如samevalue或comparevalue,它们将epsilon作为参数,并说125.1200074788或例如125.1200087952是相等的.

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



1> mik..:

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

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

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有