如何在SQL中解决该计算

时间:2017-11-18 09:25:44

标签: sql sql-server sql-server-2012

我有一个计算,其中我得到结果但在Decimal之后有一些问题    地点是:

(31,250x.04) / ((1 + .04)^16.5)-1 = 1,373.52 (this is the original answer)

但是当我计算我得到1,373.626373。所以任何人都可以帮我解决它    我的计算是:

选择(31250 * .04)= 1250.00

选择POWER((1.04),16.5)-1 = 0.91

选择1250.00 / 0.91

1 个答案:

答案 0 :(得分:4)

您需要使用优于默认值的数字文字精度来获取0.91007...项的所有数字:

select convert(decimal(18,9), 31250 * 0.04) / (convert(decimal(18,9), power(convert(decimal(18,9), 1 + 0.04), 16.5))-1)

使用

比较所有结果
select convert(real, 31250 * 0.04) / (convert(real, power(1 + 0.04, 16.5))-1)

select convert(float, 31250 * 0.04) / (convert(float, power(1 + 0.04, 16.5))-1)

select convert(decimal(18,9), 31250 * 0.04) / (convert(decimal(18,9), power(convert(decimal(18,9), 1 + 0.04), 16.5))-1)