双精度浮点数转换,单浮点数转换双浮点数

首页 > 上门服务 > 作者:YD1662024-01-08 11:45:31

以上例子是一个“小数由十进制转换到二进制时可以算到‘余下的小数为0’为止”的小数。

但对于“小数由十进制转换到二进制时只能算到‘满足精度要求’为止”的小数,采用这种方法将二进制小数转换成十进制小数,则所计算出的结果会与实际的十进制小数之间产生误差。但若之前所取的精度越高(即二进制小数位数越多),则该误差就会越小。

比如:0.734就是一个“只能算到‘满足精度要求’为止”的小数。

首先,我们将0.734转换成二进制,过程如下:

0.734×2=1.468……1

0.468×2=0.936……0

0.936×2=1.872……1

0.872×2=1.744……1

0.744×2=1.488……1

0.488×2=0.976……0

……

显然,不管乘以多少次2,所得的乘积的小数部分都不可能为0,所以只能取一定精度。现假设,精度就是6位有效二进制数,那么,顺序取值而所得的0.734的二进制就是0.101110。

然后,我们再用上面的方法将二进制小数转换回十进制小数,具体过程如下:

双精度浮点数转换,单浮点数转换双浮点数(13)

显然,根据上面的方法所计算的结果要比实际结果0.734小,但也已经很接近0.734了。如果前面所取的精度再高一些、位数再多一些,那么所计算的结果将会更接近0.734。

这也就是为什么前面会说“有误差”的原因了。

上一页1234末页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.