我其中我想在下面的方式圓向上號碼特有要求 -修改輪迴函數UP Oracle中
1.14 to 1.5
1.6 to 2
0.8 to 1
7.5 to 7.5
即,爲0.5最接近的倍數。
有沒有辦法做到這一點?
問候
我其中我想在下面的方式圓向上號碼特有要求 -修改輪迴函數UP Oracle中
1.14 to 1.5
1.6 to 2
0.8 to 1
7.5 to 7.5
即,爲0.5最接近的倍數。
有沒有辦法做到這一點?
問候
如果你想四捨五入到最接近的0.5:
測試數據:
CREATE TABLE your_table (value) AS
SELECT 1.14 FROM DUAL UNION ALL
SELECT 1.6 FROM DUAL UNION ALL
SELECT 0.8 FROM DUAL UNION ALL
SELECT 7.5 FROM DUAL;
查詢 :
SELECT value,
CEIL(value * 2)/2 AS rounded_value
FROM your_table
輸出:
VALUE ROUNDED_VALUE
----- -------------
1.14 1.5
1.6 2
0.8 1
7.5 7.5
如果你想從零本輪客場精確到0.5(不是負數同樣的事情),你可以使用:
SIGN(value) * CEIL(ABS(value)*2)/2
完美!......非常感謝您的即時解決方案:) –
這裏有一種方法:
select floor(val * 2 + 1)/2
它失敗了7.5至7.5 –
@AnirudhD。 。 。如果您閱讀編輯歷史記錄,當我回答時,您會發現這不是問題。 downvote是完全沒有理由和粗魯。 –
7.5不在原始範圍內。但似乎很明顯(至少對我來說)它不應該被四捨五入爲8 –
好的 - 所以你不需要將ROUND精確到0.5,而是將ROUND ** UP **精確到0.5。這就是MT0所展示的。 – mathguy
這不是「四捨五入」 - 你想要一個天花板。 –