C++中的双精度数字

use*_*917 3 c++ floating-point range

IEE754(64位)浮点应该正确表示15位有效数字,尽管内部表示有17个数字.有没有办法强制第16和第17位数为零?

参考: http ://msdn.microsoft.com/en-us/library/system.double(VS.80).aspx :. .

请记住,浮点数只能近似一个十进制数,并且浮点数的精度决定了该数字近似于十进制数的准确程度.默认情况下,Double值包含15个十进制数字的精度,但内部最多保留17位数.浮点数的精度有几个结果:..

示例nos:d1 = 97842111437.390091
d2 = 97842111437.390076
d1和d2在第16和第17个小数位上不同,这些位置不应该是重要的.寻找迫使他们归零的方法.即d1 = 97842111437.390000 d2 = 97842111437.390000

ava*_*kar 11

编号反例:两个最接近浮点数的理论

1.11111111111118
Run Code Online (Sandbox Code Playgroud)

(有15位小数)是

1.1111111111111799942818834097124636173248291015625
1.1111111111111802163264883347437717020511627197265625
Run Code Online (Sandbox Code Playgroud)

换句话说,没有以浮点数开头1.1111111111111800.