【问题标题】:Excel rounding same number in different wayExcel以不同的方式四舍五入相同的数字
【发布时间】:2019-03-03 14:11:49
【问题描述】:

我在使用 Excel 时遇到过这个问题: 如果我将一些十进制数字删除到相同的数字(通过两个不同的公式获得),我会得到两个不同的舍入数字。数字-0,01950,43930-0,45880获取时四舍五入为-0,0201,09230-1,11180获取时四舍五入为-0,019

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

【问题讨论】:

  • 您需要提供有关数字来源的更多详细信息。一个可能的原因是输入数字的精度导致微小的分数使数字不完全等于 0.0195(例如 0.01949999999999999999 将显示为 0.01950
  • 原始数字(例如 1,11180)只需用键盘输入
  • 请编辑您的问题以包括它们的输入方式以及您用于计算的函数

标签: excel rounding


【解决方案1】:

我认为您遇到了所谓的“浮点精度”。 影响这个“问题”的两件事是:

  • Excel 只能处理 15 位数字
  • IEEE 754 浮点标准要求数字以二进制格式存储。

“IEEE 754 浮点标准要求数字以二进制格式存储。这意味着必须先进行转换,然后才能将数字用于计算。如果数字可以精确地以浮点格式表示,则转换是精确的。" 来源:Understanding Floating Point Precision, aka “Why does Excel Give Me Seemingly Wrong Answers?

“IEEE 有一个标准,IEEE 754,关于如何用二进制表示浮点数,这是几乎每个人都使用的,包括 Excel,而且他们使用了很长时间,这意味着有时将许多 0.1 加在一起时会得到不精确的结果,但如果将数字四舍五入到合理的小数点位数,则不会真正关心。” 来源:Explain the Excel Bug

因此,您可以获得看似错误的结果。当您添加或减去多个十进制值时,它更有可能发生。我已经在下图中进行了说明:

有两种简单的方法可以针对这种行为调整 Excel:

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

【讨论】:

  • 非常感谢您详尽的解释,顺便说一下您建议的解决方法对我不起作用...
  • 乐于助人:)!谢谢你提到它。我刚刚尝试了 Excel 2016 中的解决方案。似乎您需要增加单元格中的位数(对我有用的 4 位数)才能产生任何效果。然后两者的行为相似。我已经更新了我的答案以反映这一点:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-12
  • 1970-01-01
  • 1970-01-01
  • 2021-05-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多