在EXCEL单元格内输入=(1.2-12*0.1)/2,结果为什么不等于0?

来源:百度知道 编辑:UC知道 时间:2024/07/04 08:58:58
显示的结果是-1.11022E-16
怎么回事呀?
唉,郁闷~~~现在是另用的一个单元格输入=1.2-12*0.1,然后再用这个单元格的数去除以2,总算是出来0了。哥几个要有啥别的好办法还望不吝赐教,谢谢大家了。

浮点计算精度出现的误差,这是excel的硬伤,微软的工程师也解决不了,做财会的可吃尽这个浮点计算精度误差的苦头,十分令人恼火。只能用ROUND函数处理一下,或者尽量避免过多的小数位数字之间的计算,别无他法

从理论上是有这个误差,但并不影响实际使用,如果数字需要计算的话,将单元格格式设为数字,并在选项中选定“以显示精度为准”就没问题了(做财务的更应选“以显示精度为准),不然表格上下左右会出现不平的现象)。

确实是浮点计算产生的后果,微软工程师也知道这个问题,他们给处理此问题做了一些方法,如果是财务的,可以将单元格设置成货币的格式,但这样只是显示的满足了你的要求,如果再继续计算,还会产生误差。

一个好的办法就是使用ROUND函数,确保每个中间结果在计算时都可以根据你的需要保留一定的小数位数。
ROUND(1.22345,3)表示1.22345精确到小数3位,并四舍五入,即1.223

设置单元格格式为数值格式。

照一楼的做呗!……