2012-10-02 62 views
0

可能重複:
MySql select format, round columnMySQL Round函數返回太多的十進制數字,當沒有。十進制數字是基於列

當我提出用ROUND(X, D),其中d是列名,而不是直接的整數值的SQL查詢,結果很好地舍入,但是有太多十進制數字。

例如,

SELECT b.digits, ROUND(a.amount, b.digits) as amount 
FROM a 
JOIN b 
ON a.number_id = b.id 

結果是這樣的:

3 357.143000000000000000000000 
2 89.290000000000000000000000 
4 696.436600000000000000000000 
2 214.290000000000000000000000 
2 328.570000000000000000000000 
2 437.500000000000000000000000 

列b.digits包含到的值必須四捨五入的數字。這是可能的基礎上,出局的結果,就像這樣:

3 357.143 
2 89.29 
4 696.4366 
2 214.29 
2 328.57 
2 437.50 
+0

正常工作對我來說,請參閱http ://www.sqlfiddle.com/#!2/048c3/1 – Barmar

+0

@Barmar:這似乎是在修整尾部零。例如,最後一行返回437.5而不是437.50。但在我的系統中,輸出顯示爲我已發佈;我在Windows 7上使用MySQL 5.5.12版 – mohitp

回答

0

嘗試用format功能:

這樣的:

SELECT b.digits, FORMAT(a.amount, b.digits) as amount FROM a JOIN b ON a.number_id = b.id

+0

這個函數雖然以'#,###,###。##'格式返回結果,但這不是必需的。 – mohitp