我在Excel中遇到此问题:
如果我将一些十进制数字删除为相同的数字(通过两个不同的公式获得),则会得到两个不同的四舍五入数字。由-0,0195
--0,020
获得的数字0,43930
被四舍五入到0,45880
,而由-0,019
-{{1获得的数字被四舍五入到1,09230
}}。
有人可以向我解释这种行为吗? (我知道我可以使用公式ROUNDUP来解决,但我需要调查这个问题。)
答案 0 :(得分:1)
我认为您遇到了所谓的“浮点精度”。 影响此“问题”的两件事是:
“ 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:
round()
舍入数字并增加显示的位数。