Excel以不同的方式舍入相同的数字

Excel以不同的方式舍入相同的数字,excel,rounding,Excel,Rounding,我在Excel中遇到过这个问题: 如果我将一些十进制数字移到相同的数字(通过两个不同的公式获得),我将得到两个不同的四舍五入数字。当通过043930-045880获取时,数字-00195四舍五入为-0020,而当通过109230-111180获取时,数字-0019四舍五入为-0020 有人能给我解释一下这种行为吗?(我知道我可以用ROUNDUP公式来解决,但我需要调查这个问题。)我想你已经遇到了所谓的“浮点精度”。 影响这一“问题”的两个因素是: Excel只能处理15位数字 IEEE 754

我在Excel中遇到过这个问题: 如果我将一些十进制数字移到相同的数字(通过两个不同的公式获得),我将得到两个不同的四舍五入数字。当通过
043930
-
045880
获取时,数字
-00195
四舍五入为
-0020
,而当通过
109230
-
111180
获取时,数字
-0019
四舍五入为
-0020


有人能给我解释一下这种行为吗?(我知道我可以用ROUNDUP公式来解决,但我需要调查这个问题。)

我想你已经遇到了所谓的“浮点精度”。 影响这一“问题”的两个因素是:

  • Excel只能处理15位数字
  • IEEE 754浮点标准要求数字以二进制格式存储
IEEE 754浮点标准要求数字以二进制格式存储。这意味着在计算中使用数字之前必须进行转换。如果数字可以用浮点格式精确表示,则转换是精确的 资料来源:

“IEEE有一个标准,IEEE 754,关于如何用二进制表示浮点数,这是几乎所有人都使用的,包括Excel,他们已经有很长一段时间了,这意味着当你把很多0.1加在一起时,有时会得到不精确的结果,但如果你把数字四舍五入到合理的小数点,你就不会真正在意了。” 资料来源:

因此,您可能会得到错误的结果。当您添加或减去多个十进制值时,更可能出现这种情况。我已在下图中对此进行了说明:

有两种简单的方法可以调整Excel以适应此行为:

  • 使用
    round()
    将数字四舍五入并增加显示的位数
  • 在Excel选项菜单->高级->单击“按显示设置精度”。 结果如下:

  • 您需要提供有关数字来源的更多详细信息。一个可能的原因是输入数字的精度导致小分数使数字不完全等于0.0195(例如,0.0194999999999999将显示为0.01950原始数字(例如111180)请编辑您的问题,包括它们是如何输入的以及您在计算中使用的函数非常感谢您详尽的解释,顺便说一句,您建议的解决方法对我不起作用……帮助很有趣:)!谢谢您的提醒。我刚刚在Excel 2016中尝试了这些解决方案。似乎您需要增加单元格中的位数(4位数对我有效)才能产生任何效果。然后两者的行为将相似。我已更新了我的答案以反映这一点:)