是否有一种方法可以将两个整数相除并只进行一次转换就将其舍入到小数点后3位?
我看到的所有示例从convert
到decimal
,然后是round
。有些人同时使用分子和分母,等等。我见过round
和floor
或ceiling
等。
我只想使用一个演员表就可以了。
例如,1/3 would be 0.333
。 5/3 is 1.667
我正在这样做,将结果转换为varchar
。
答案 0 :(得分:1)
将两个int值相除t-sql只有两个可能的结果:
将其中一个操作数强制为numeric
就足够了:
select round(1.0/3,3,0)
另一种方法是避免尾随零:
select cast(1.0/3 as decimal(18,3))
这当然仅适用于数字文字。如果您有列或参数值,则仍然需要cast
。
这种在编码高尔夫球上的微不足道的尝试可消除一个角色:
select convert(decimal(9,3),1.0/3)