我有700SQL計算正確的格式不顯示
declare @a decimal(10,0)
declare @b decimal(10,0)
set @a = 100 - 2
set @a = @a/14
set @a = @a * 100
set @a = ((100 - 2)/14) * 100
select @a
出來下面的SQL查詢什麼,我期待它做的是回到85.714285等等
不太肯定我錯了。
感謝
我有700SQL計算正確的格式不顯示
declare @a decimal(10,0)
declare @b decimal(10,0)
set @a = 100 - 2
set @a = @a/14
set @a = @a * 100
set @a = ((100 - 2)/14) * 100
select @a
出來下面的SQL查詢什麼,我期待它做的是回到85.714285等等
不太肯定我錯了。
感謝
700
是正確的結果。
請再檢查一次!
((100 - 2)/14) * 100 = 700
你計算出
100 - 2/14 * 100 = 85,...
你想用這個SQL查詢。
set @a = 100 - 2.0/14 * 100
如果你在標準模式下使用Windows計算器,並做100-2/14 * 100它出來700然而,如果你改變它科學它出來在85.714285714285714285714285714286 - 後來就是我想要的結果 – needmorebeerformewallaby 2012-04-19 11:35:28
然後從你的sql查詢中移除'()':'set @a = 100 - 2.0/14 * 100'。並將'.'添加到'2'或'14'。 – 2012-04-19 11:38:41
謝謝尤爾根,這是完美的! – needmorebeerformewallaby 2012-04-19 11:41:43
添加1.0到你的最後一行的末尾,因爲如果你使用的所有整數SQL將隱式轉換的結果作爲一個int。
set @a = ((100 - 2)/14) * 100.0
還給出了相同的答案 – needmorebeerformewallaby 2012-04-19 11:21:27
你的聲明是錯誤的:
declare @a decimal(10,0)
declare @b decimal(10,0)
你指定的長度,但不是小數位數,這是通過使用第二值來完成。
改變你的聲明,包括小數位:
declare @a decimal(10,5)
declare @b decimal(10,5)
set @a = 100 - 2
set @a = @a/14
set @a = @a * 100
set @a = ((100 - 2)/14) * 100
select @a
由於您的聲明被設置爲10,0
那麼你會得到沒有小數位。
,如果你想要的答案是85.714 ......那麼你需要改變你的SQL語句:
declare @a decimal(10,5)
set @a = 100.0 - 2.0
set @a = @a/14.0
set @a = @a * 100.0
set @a = 100.0 - ((2.0/14.0) * 100.0)
select @a
爲了得到你正在尋找的結果你需要添加一個.
到其他值( 2,14等),你會得到你想要的值,你還需要確保你的圓括號在正確的位置。
結果 - 85.71430
剛剛返回700.00000 - 我需要它返回85.714285等 – needmorebeerformewallaby 2012-04-19 11:23:50
700是正確的結果((100-2)/14)* 100不等於85.714285 – Taryn 2012-04-19 11:25:10
如果你在標準模式下使用Windows計算器,並做100-2/14 * 100它會在700出來然而如果你改變它科學它出來在85.714285714285714285714285714286 - 後者是我想要的作爲結果。 – needmorebeerformewallaby 2012-04-19 11:29:08
爲什麼你期望的結果是85.714285? – Marshal 2012-04-19 11:27:47
[BODMAS](http://en.wikipedia.org/wiki/Order_of_operations) – Paddy 2012-04-19 11:33:33