了解 Excel/Libre Calc 中的 ROUND() 函数
Understanding ROUND() function in Excel/Libre Calc
我最近发现 MS Excel 和 Libre Office 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, ...].
谁能给我解释一下这个现象?谢谢!
(如有必要,请将此问题移至适当的社区)
您的结果不同,因为该函数查看数字的不同部分以完成其起点的小数点后两位或一位。
对于 2dp,它查看 4.449,它正确地四舍五入为 4.45,然后正确地四舍五入为 1dp 为 4.5。由于额外的步骤和 9.
,与原始源数字相比,这是 1dp 的不正确结果
原则是,如果您需要 1dp,则一步完成,只需 4.449 轮即可达到 4.4。以低于 5 为准,高于 5 则上涨。
我最近发现 MS Excel 和 Libre Office 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, ...].
谁能给我解释一下这个现象?谢谢!
(如有必要,请将此问题移至适当的社区)
您的结果不同,因为该函数查看数字的不同部分以完成其起点的小数点后两位或一位。
对于 2dp,它查看 4.449,它正确地四舍五入为 4.45,然后正确地四舍五入为 1dp 为 4.5。由于额外的步骤和 9.
,与原始源数字相比,这是 1dp 的不正确结果原则是,如果您需要 1dp,则一步完成,只需 4.449 轮即可达到 4.4。以低于 5 为准,高于 5 则上涨。