2010-07-29 85 views
1

我试图在SQL Server中进行计算,并用2个小数点检索值。但是,这总是会返回小数点后2位的值。有人知道那里发生了什么吗?SQL Server中的小数点

例如:

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

的回报始终是10.00,而不是10.53

+1

没有试图成为一个聪明的alec,但我不认为你可以得到这一个10.53的答案,除非你使用一个真正搞砸的计算器。你不是为了105.26吗? – mattmc3 2010-07-29 00:56:46

回答

1

试着改变整数一个浮点数:

SELECT convert(decimal(5,2),((2*100.0)/19), 2) as 'test' 
FROM customer 

结果:

10.53 

我选择了100改为100.0,因为我猜测你正在试图计算一个百分比,并且在你的最终查询中,100将会是一个固定的硬编码。我猜测其他两个值(2和19)将稍后更改为从表中的整数字段中读取。

1

尝试除以19.0 如果你只除以19,sql server会假设所有的数据类型都是整数,并会相应地进行数学运算。

1

试试这个:

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

这一点” .0" 在你的分母年底应该有所帮助。