我试图在SQL Server中进行计算,并用2个小数点检索值。但是,这总是会返回小数点后2位的值。有人知道那里发生了什么吗?SQL Server中的小数点
例如:
select convert(decimal(5,2),((2*100)/19), 2) as 'test'
from customer
的回报始终是10.00,而不是10.53
我试图在SQL Server中进行计算,并用2个小数点检索值。但是,这总是会返回小数点后2位的值。有人知道那里发生了什么吗?SQL Server中的小数点
例如:
select convert(decimal(5,2),((2*100)/19), 2) as 'test'
from customer
的回报始终是10.00,而不是10.53
试着改变整数一个浮点数:
SELECT convert(decimal(5,2),((2*100.0)/19), 2) as 'test'
FROM customer
结果:
10.53
我选择了100改为100.0,因为我猜测你正在试图计算一个百分比,并且在你的最终查询中,100将会是一个固定的硬编码。我猜测其他两个值(2和19)将稍后更改为从表中的整数字段中读取。
尝试除以19.0 如果你只除以19,sql server会假设所有的数据类型都是整数,并会相应地进行数学运算。
试试这个:
select convert(decimal(5,2),((20*100)/19.0), 2) as 'test'
from customer
这一点” .0" 在你的分母年底应该有所帮助。
没有试图成为一个聪明的alec,但我不认为你可以得到这一个10.53的答案,除非你使用一个真正搞砸的计算器。你不是为了105.26吗? – mattmc3 2010-07-29 00:56:46