尽管内部表示有 17 位,但 IEE754(64 位)浮点应该正确表示 15 位有效数字。有没有办法强制第 16 位和第 17 位为零?
Ref:
http://msdn.microsoft.com/en-us/library/system.double(VS.80).aspx http://msdn.microsoft.com/en-us/library/system.double(VS.80).aspx :
.
.
请记住,浮点数只能近似十进制数,并且浮点数的精度决定了该数字近似十进制数的准确程度。默认情况下,Double 值包含 15 位小数位精度,但内部保留最多 17 位数字。浮点数的精度有几个影响:
。
。
编号示例:
d1 = 97842111437.390091
d2 = 97842111437.390076
d1 和 d2 在小数点后第 16 位和第 17 位不同,这不应该是重要的。寻找方法迫使它们归零。 IE
d1 = 97842111437.390000
d2 = 97842111437.390000
No. 反例:最接近有理数的两个浮点数
1.11111111111118
(有 15 位小数)是
1.1111111111111799942818834097124636173248291015625
1.1111111111111802163264883347437717020511627197265625
换句话说,不存在以以下开头的浮点数1.1111111111111800
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)