首页 > 试题广场 >

在浮点数运算过程中,10.0乘以0.1一定等于1.0。( )

[单选题]

在浮点数运算过程中,10.0乘以0.1一定等于1.0。(

  • 正确
  • 错误
跟运算器的位数有关
发表于 2018-06-26 23:32:56 回复(0)
这个谁来解释下
发表于 2017-11-23 15:29:25 回复(3)

计算机中的浮点数并不能完全精确表示。例如,对于一个double型的38414.4来说,计算机是这样存储它的:


转成二进制:1001011000001110.0110011001100110011001100110011001100

转成科学计数法:1.0010110000011100110011001100110011001100110011001100×2^15

double型编码格式是这样的:

double 符号位1位 阶码11位 尾数52位

符号位:正数统一是0

阶码:15是正数,因此最高位是1,最低位减1,为10000001110

尾数:去掉最高位默认的1,为0010110000011100110011001100110011001100110011001100

组合起来,最终得到的编码是:0 10000001110 0010110000011100110011001100110011001100110011001100

从这里可以看出来,主要原因在于二进制编码使得小数部分无法完全精确表示,例如0.4 = 0.25 + 0.125 + ...,只能无限接近。所以在对浮点数做计算时会产生精度误差。

发表于 2018-10-24 10:26:01 回复(0)