仅当小数点后第三位数字等于 5 时才向下舍入

仅当小数点后第三位数字等于 5 时才向下舍入

我想创建一个公式,如果小数点后第三位数字是 5,则向下舍入,否则只舍入。可以吗

答案1

四舍五入需要打破平局的规则,也就是说,很容易舍入到最接近的有效数字,但在中间点该怎么做呢?此时上部和下部的有效数字同样接近。最广泛使用的打破平局的规则称为“上半”,即 0.5 四舍五入为 1,即使 0 同样接近。

看来您希望实施“半价”规则,那么以其最基本的形式:

=IF(ABS(A1*100 - TRUNC(A1*100)) = 0.5,ROUNDDOWN(A1,2), ROUND(A1,2))

或针对较少比较的操作进行优化

=TRUNC(A1*100)/100 + IF(ABS(A1*100 - TRUNC(A1*100)) <= 0.5, 0, sign(A1)*0.01)

答案2

ROUND 将把 5 向上舍入。因此0.001从值中减去任何值,这样任何值#.##5都会向下舍入。

=ROUND(A1-0.001,3)

这会将小数点后三位为 5 的数值向下舍入,而不管其后的其他小数位是多少。如果想要将 Excel 会舍入到的数值向下舍入,#.##5则我们改为减去0.0005

=ROUND(A1-0.0005,3)

现在如果 A1 可以为负数,我们可以使用 SIGN():

=ROUND(A1-(SIGN(A1)*0.0005,3)

相关内容