在使用T-SQL ROUND
函数时,我注意到了一些奇怪的行为。看起来ROUND
函数只查看要舍入的数字右侧的第一个数字。如果我将-6.146舍入到一个小数,我得到-6.1。我原本以为它会从右边开始,每个数字都是向左边开始,就像这样:-6.146 - > -6.15 - > -6.2
我也用Excel的圆函数观察了相同的行为。
下面的查询说明了我所描述的内容。我可以简单地使用嵌套的ROUND
函数,如下所示,但我很好奇是否有更好的方法以及哪种方法在数学上是正确的。
DECLARE @Num AS FLOAT
SET @Num = -6.1463
SELECT @Num [OriginalVal], ROUND(@Num, 1, 0) [SingleRound]
, ROUND(ROUND(ROUND(@Num, 3, 0), 2, 0), 1, 0) [NestedRound]
结果
OriginalVal | SingleRound | NestedRound
-6.1463 | -6.1 | -6.2
答案 0 :(得分:1)
我认为基本的经验法则是,在四舍五入中,你会看到你要四舍五入的地方右边的1位数字。您不会将它一直延伸到小数点右边的末尾。