2011-03-08 99 views
1

我在尋找一個ROUND()類型的函數,它可以讓我將數字舍入到小數點後1位,但也可以精確到0.5。MySQL舍入函數

舉例說明:

19.425 => 19.5 
19.124 => 19.0 

同理:

12.654 => 12.5 
12.845 => 13.0 

回答

9

正如vissi所說,爲了得到你想要的結果,你需要2輪迴復。 (要得到小數點後1位)

SELECT ROUND(ROUND(19.425 * 2)/2, 1) #19.5 
SELECT ROUND(ROUND(19.124 * 2)/2, 1) #19.0 
SELECT ROUND(ROUND(12.654 * 2)/2, 1) #12.5 
SELECT ROUND(ROUND(12.845 * 2)/2, 1) #13.0 
+0

+1 for smart answer – Nishant 2011-03-08 10:27:22

3

您可以通過兩個回合乘以你的號碼,然後除以二。請注意,結果可能仍不是很準確(像19.5000000000001)。