2015-06-05 49 views
0

我使用MySQL數據庫,並且我有一個名爲fertilizer_storage的表,它使用正值和負值。它有4列城鄉結合部,TSP,MOP和TDM當存在浮點數時,獲取MySQL表數據的SUM

我使用雙數據類型和使用follwing語法每一列的越來越總和,

SELECT SUM(uria),SUM(TSP),SUM(MOP),SUM(TDM) FROM `fertilizer_storage` WHERE `branch_ID`=1 

的問題是針對一些列我收到不需要浮點15,而所有列都包含最多4個浮點數。

7.666900000000002 
7.666900000000002 
9.6109 
9.9924 

當我在前兩列中將數字更改爲其他兩列時,它會給出正確的答案。我應該怎麼做才能糾正這一點。

+1

你知道,雙打和彩車被定義不是100%正確?他們是一個近似值。這也可能是你得到奇怪結果的原因。例如,我建議將數據類型更改爲小數點,然後確保它始終準確,直到逗號後面有4個字符。 – Tikkes

+0

我同意。這對我來說不太可能是你想要FLOAT DOUBLE。 – Strawberry

回答

2

您可以使用ROUND(X, D)

大紅大紫的說法X到d小數。舍入算法 取決於X的數據類型。如果未指定,則D默認爲0。 D可以 爲負數,導致值X 的小數點左邊的D數字變爲零。

SELECT Round(Sum(uria), 4), 
     Round(Sum(tsp), 4), 
     Round(Sum(mop), 4), 
     Round(Sum(tdm), 4) 
FROM `fertilizer_storage` 
WHERE `branch_id` = 1 

See it in action

+0

它工作正常。 – Shashi

+0

很好用。你可以接受答案,這將在未來幫助他人。 – Manwal