2017-05-19 181 views
-1

我最近发现MS Excel以及Libre Office Calc的行为。当我将以下数字直接舍入到小数点后1位(最后一列)时,它会比先前保留两位小数(第二列)然后保留一位小数位(第三列)四舍五入。Excel/Libre中理解ROUND()函数Calc

number    ROUND(A1,2)  ROUND(A2,1) ROUND(A1,1) 
4.449331525248   4.45    4.50   4.40 

我不是数学家,但在我看来,直接舍入到一位小数(最后一列)是错误的。 其他数字恰好包括[3.34690622103941,4.14677866251134,3.64939941850228,...]。

有人可以向我解释这种现象吗?谢谢!

(请将这个问题到合适的社区,如果需要的话)

+3

'4.4493'四舍五入到小数点后一位是'4.4',并且'4.45'四舍五入到小数点后两位; “4.45”四舍五入到小数点后一位是“4.5”。我不太了解这个问题。如果您需要进一步的解释,也许可以把它带到[math.stackexchange.com](https://math.stackexchange.com/)。当然,您可以在[stackoverflow.com](http://stackoverflow.com)的底部找到该社区的链接,但无论如何它都可以。 – Jeeped

+1

你的眼睛一直缺少* 4 *。 '4.4493/0.1 = 44.49' **不是**'4.4493/0.1 = 44.94'。 – Jeeped

+0

谢谢 - 这个错误显然完全在我身上!我应该睡觉,而不是下一次询问Excel;;) – Klaster

回答

0

你的结果是不同的,因为函数着眼于许多不同的部分来完成它的出发点两个或小数点后一位。

对于2dp,它看起来在4.449正确舍入到4.45,然后正确舍入为1dp为4.5。这是1dp相对于原始源数字的错误结果,因为额外的步骤和9.

道德是如果你需要1dp,那么一步完成只有4.449轮到4.4。基于5以下,以上。

+0

它说“5下降...”,而不是“5下降”.... –