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

时间:2018-09-27 15:49:09

标签: excel rounding

我在Excel中遇到此问题: 如果我将一些十进制数字删除为相同的数字(通过两个不同的公式获得),则会得到两个不同的四舍五入数字。由-0,0195--0,020获得的数字0,43930被四舍五入到0,45880,而由-0,019-{{1获得的数字被四舍五入到1,09230 }}。

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

1 个答案:

答案 0 :(得分: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

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

Floating Point Precision Issue Illustrated

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

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

enter image description here