Division en sqlrésultat[关闭]

问题描述 投票:-1回答:2

此代码:

DECLARE @remise decimal(10,2) 
set @remise = 10 / 100
select @remise

结果为0.00。为什么没有得到我一直期望的0.10?

sql division
2个回答
1
投票

您有两个整数-10100。因此,在考虑除法运算符时,系统决定执行整数除法。整数除法不考虑任何余数,并且不能产生十进制结果,因此结果为0

您随后计划将结果存储在decimal(10,2)中都没关系。

[One]的解决方法是使用非整数作为除法的输入之一。如果您不使用文字,通常可以通过将输入之一乘以1.0来完成:

DECLARE @remise decimal(10,2)
set @remise = (10 * 1.0) / 100
select @remise

0
投票

这是SQL Server吗?

10和100都是整数。整数除法10/100得出0。如果将0放入十进制变量中,则零仍保持为零。

您想要

DECLARE @remise decimal(10,2)
set @remise = 10.0 / 100.0
select @remise
© www.soinside.com 2019 - 2024. All rights reserved.