此代码:
DECLARE @remise decimal(10,2)
set @remise = 10 / 100
select @remise
结果为0.00。为什么没有得到我一直期望的0.10?
您有两个整数-10
和100
。因此,在考虑除法运算符时,系统决定执行整数除法。整数除法不考虑任何余数,并且不能产生十进制结果,因此结果为0
。
您随后计划将结果存储在decimal(10,2)
中都没关系。
[One]的解决方法是使用非整数作为除法的输入之一。如果您不使用文字,通常可以通过将输入之一乘以1.0
来完成:
DECLARE @remise decimal(10,2)
set @remise = (10 * 1.0) / 100
select @remise
这是SQL Server吗?
10和100都是整数。整数除法10/100得出0。如果将0放入十进制变量中,则零仍保持为零。
您想要
DECLARE @remise decimal(10,2)
set @remise = 10.0 / 100.0
select @remise