除以整数返回的小数位数?

时间:2018-01-13 21:12:54

标签: sql sql-server tsql

- 在sql server 2005中。

SELECT 5/13;   ----> 0  
SELECT Cast(5/13 AS real); --> 0  
SELECT 5.00/13.00; --> 0.3846153 
SELECT cast(5/13 as decimal(10, 2));        --> 0.00 
SELECT cast(5 as decimal)/cast(13 as Decimal); --> 0.3846153846153846153

是否存在通过除以整数返回的小数位数的全局设置?我只需要将结果设为.38

1 个答案:

答案 0 :(得分:0)

没有全局设置。 (这是你要问的问题。)

分割两个整数时,结果为整数。您只想将值表示为两位小数。约翰卡佩莱蒂在评论中有正确的答案。将值转换为非整数,然后转换回所需的格式。我通常乘以1.0来做到这一点:

select cast((5 * 1.0 / 13) as decimal(10, 2)

对十进制值进行算术运算时产生的小数位数有相当神秘的规则。