numbers计算错误
已解决
例如89.1-86.5=2.599999999999……。182.1-181=1.0999999990……就是计算十位数是8小数点后面是1的数减去小于被减数10的任意数所得的结果是无限循环小数。这样的结果正常吗?
最佳答案
| 回答者 | 宋二白 |
|---|---|
| 回答时间 | 2021-04-12 |
计算机在计算小数的时候,不可能对所有小数精确计数,因为是使用二进制标识小数,这与我们人类大脑的记忆方式不一样,在网上找到了一篇有关的介绍文章(http://www.cnblogs.com/swiftma/p/5411413.html)可以参考无论是在Numbers里还是Excel里,计算都是一样的,在Numbers中单元格默认的精确位数为“自动”,在我的机器上它是15位,而在Excel中的计算会默认小数位数定义为2,看上去计算就是精确的了,但是其实和Numbers的计算结果相同-计算机内部的表示方法,二进制的数值。比如下面有人举例的4.94-4.06,无论哪个软件如果都是小数精确位数是15位,那幺结果都是0.880000000000001,最后的1就是计算机内部表达小数不精确造成的。这种不精确,在日常生活工作中不会有影响,因为我们一般只用最多几位小数,默认的计算精度足够应付。在显示的时候,只要把小数位数定义到你所需要的就可以显示正常。
其它回答(2)
- 佳人
被减数大于80且十位上的数是8小数部分必须是.1例如1684.1。减数和被减数之差必须小于10且十位上的数也是8,小数部分不限。这样用减法公式计算结果就成无限不循环小数。
0 - 归鹤清潇
4.94-4.06;4.65-4.31;8.04-7.96;7.15-6.76这些计算结果都有类似问题
0