SQL Server中的小数点

时间:2010-07-29 00:48:02

标签: sql-server

我尝试在SQL Server中进行计算并检索带有2个小数点的值。但是,对于2位小数,这总是返回0的值。有谁知道那里发生了什么?

示例:

select convert(decimal(5,2),((2*100)/19), 2) as 'test'
from customer

返回始终为10.00而不是10.53

3 个答案:

答案 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”应该会有所帮助。