一、存在原因
浮点运算误差通常出现在使用小数运算,或运算过程中包含小数的情况中,在减法和除法中比较多见,这算误差的出现是随机的,并不一定总能碰到。但是,以目前的科技,这种误差总是可观存在的。
由于计算机内部以二进制保存,所以十进制的有限位的小数,在计算机内部会是一个无限位的小数。
例如:十进制的0.9虽然只有一位小数,转成2进制是无限循环小数0.1110011001100110011...
单元格中写入简单的计算=5.1-5.2+1,计算结果毫无争议应该是0.9,但是如果设置足够多的小数位数,会发现Excel的计算结果并不等于0.9。
二、误差测试
1.正常情况
2. 发现问题
3.解决问题
使用round四舍五入保留两位小数,如果是XXXX.XXX999无线循环,可以得到正确的数据
三、其他误差案例