我尝试在SQL Server中进行计算并检索带有2个小数点的值。但是,对于2位小数,这总是返回0的值。有谁知道那里发生了什么?
示例:
select convert(decimal(5,2),((2*100)/19), 2) as 'test'
from customer
返回始终为10.00而不是10.53
答案 0 :(得分:1)
尝试将其中一个整数更改为浮点数:
SELECT convert(decimal(5,2),((2*100.0)/19), 2) as 'test'
FROM customer
结果:
10.53
我选择了100来更改为100.0,因为我猜你正在尝试计算一个百分比,并且100将是最终查询中的常量硬编码。我猜测其他两个值(2和19)将在以后更改为从表中的整数字段读取。
答案 1 :(得分:1)
尝试除以19.0 如果你只是除以19,sql server假设所有数据类型都是整数,并且会相应地进行数学运算。
答案 2 :(得分:1)
试试这个:
select convert(decimal(5,2),((20*100)/19.0), 2) as 'test'
from customer
分母末尾的那个小“.0”应该会有所帮助。