2017-11-18 230 views
2

指算來我有一個計算中,我得到的結果,但一些問題後,小數 地點是:我該如何解決SQL

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

但是,當我計算我得到1,373.626373。所以任何一個可以幫助我解決這個問題 我的計算是這樣的:

選擇(31250 * 0.04)= 1250.00

選擇功率((1.04),16.5)-1 = 0.91

選擇1250.00/0.91

+0

您正在使用哪個版本的SQL? –

+0

我的SQL版本是SQL Server 2012. –

+0

SQLITE有一個ROUND()函數,可讓您設置小數點後的位數。谷歌說SQL SERVER也是。 – Marichyasana

回答

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) 
+0

非常感謝給我解決方案它適用於我 –

相關問題