Microsoft Office Excel 2010的回合为2.5到3.它还会将-2.5回合到-3。
我尝试使用Excel验证我的数据,对着一个舍入-2.5到-2的系统。不同的系统似乎使用不同的打破平局规则(即我学会了Oracle使用相反规则的困难方法)。
是否有一个将-2.5到-2的Excel公式?创造力也是可以接受的(即简单的宏观)。
它也应该圆:
-2.7 -> -3
-2.2 -> -2
这与我正在寻找的方向相反:
=ROUND(-2.5,0)
编辑:我之前说过一种类型的舍入比另一种更正确。经过更多的研究,我没有比另一个更受欢迎。但我确实找到了默认的IEEE rounding rule,奇怪的是,通过四舍五入到最接近的半数来打破关系。我不是在寻找这种方法:)
答案 0 :(得分:6)
如果它始终是整数,这应该有效。
=FLOOR(A1+0.5,1)
如果你需要小数,说小数位是B1,它就像
一样简单=FLOOR(A1*10^B1+0.5,1)/10^B1
正如Barry Houdini在评论中所指出的,FLOOR(,1)与INT()相同,但没有额外的参数。
=INT(A1*10^B1+0.5)/10^B1
答案 1 :(得分:0)
解决方法可能如下:
IF(A1 >= 0; ROUND(A1; 0); -ROUND(-A1; 0))
答案 2 :(得分:0)
这似乎也有效。
=IF(ISNUMBER(FIND(".5",A1)),ROUNDDOWN(A1,0),ROUND(A1,0))
答案 3 :(得分:0)
它不是很漂亮,但这很有效。您可以根据您正在使用的数字的精确度相应地更改精度。
IF(A1 >= 0; ROUND(A1; 0); ROUND(ROUND(A1-0.999999; 0)+.999999; 0))
答案 4 :(得分:0)
您还可以通过将 IF()与 INT()一起使用来评估数字是正数还是负数,方法是先转换为正数,然后再转换为正数。 / p>
伪代码
// positive number evaluation
If decimal is greater than or equals 0, then INT( decimal )
// negative number evaluation
Else INT( number × (-1) ) × (-1)
Excel If()和INT()函数
=IF( number >= 0, INT( number ), INT( ( number ) * (-1) ) * (-1) )
正数示例
=IF(2.5>=0,INT(2.5),INT((2.5)*(-1))*(-1))
=2
负数示例
=IF(-2.5>=0,INT(-2.5),INT((-2.5)*(-1))*(-1))
=-2