关于34.6-34.0=0.5999985的计算过程
再算浮点数时,涉及到小数的处理,看了点资料,写了如下34.6-34.0=0.5999985的计算过程,麻烦大家看看对不对————————————————————————我是分割线————————————————————————————————————————
34.6
对应二进制 100010.1001 1001 1001 1001 10
对应IEEE浮点数 1.00010 1001 1001 1001 1001 10(指数域为5,即5+127=132,对应为1000 0100)
IEEE标准机器表示 0 10000100 00010100110011001100110 ————编号A
34.0
对应二进制 100010.0000 0000 0000 0000 00
对应IEEE浮点数 1.00010 0000 0000 0000 0000 00(指数域为5,即5+127=132,对应为1000 0100)
IEEE标准机器表示 0 10000100 00010000000000000000000 ————编号B
用A的尾数域减去B的尾数域 00000100110011001100110
所以34.6-34.0的结果对应的IEEE标准机器表示为 0 10000100 00000100110011001100110 ————编号C
编号C对应为 2的-1次方+2的-4次方+2的-5次方+2的-8次方+2的-9次方+2的-12次方+2的-13次方+2的-16次方+2的-17次方 ————编号D
编号D的计算结果为0.59999847412109375 ————编号E
编号E根据“向最近有效位取舍原则”为0.5999985 (7进1,加在4上,变为5)
所以结果为0.5999985(因为0.6在转换成二进制的时候,永远都不能精确,只是依据IEEE原则和整数部分一起保留了23位有效数,所以在二进制表示上,精度为23位,当转换为十进制时,保留小数点后7位有效数字所以得到这样的结果)
————————————————————————我是分割线————————————————————————————————————————
以上是我想的计算过程,请问
这样的计算过程对不?