- 在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
答案 0 :(得分:0)
没有全局设置。 (这是你要问的问题。)
分割两个整数时,结果为整数。您只想将值表示为两位小数。约翰卡佩莱蒂在评论中有正确的答案。将值转换为非整数,然后转换回所需的格式。我通常乘以1.0来做到这一点:
select cast((5 * 1.0 / 13) as decimal(10, 2)
对十进制值进行算术运算时产生的小数位数有相当神秘的规则。