簡體   English   中英

是否可以在保持小數形式的同時在 SQL 中舍入小於 1 的數字

[英]Is It Possible to Round a Number Smaller Than 1 In SQL While Keeping In Decimal Form

盡管專門尋找它,但我沒有找到解決此問題的方法。

下面的查詢是我試圖讓最后一個小數位正確顯示。

select CAST(CAST(33 as float)/100 as decimal(5,3))

從這里我正在尋找如何正確四舍五入到 0.33 或者如果結果是 0.339 到四舍五入到 0.34

我發現它只會向下舍入為 0,因為它不是整數。

有人可以指出我正確的方向,或者如果沒有好的方法讓我知道。

確保您的分母不被視為整數。 您可以添加.0CASTCONVERT 在您希望四舍五入發生的情況下:

SELECT 331 / 1000.0;
-- gives 0.331000

SELECT ROUND(331 / 1000.0, 2);
-- gives 0.330000

SELECT CAST(ROUND(331 / 1000.0, 2) AS DECIMAL(5, 2));
-- gives 0.33

如果您希望四舍五入發生:

SELECT 339 / 1000.0;
-- gives 0.339000

SELECT ROUND(339 / 1000.0, 2);
-- gives 0.340000

SELECT CAST(ROUND(339 / 1000.0, 2) AS DECIMAL(5, 2));
-- gives 0.34

注意:您可能不需要同時執行ROUNDCAST因為我相信四舍五入是隱式發生的,但是如果您選擇這樣編寫它會使意圖更加清晰。

你可以試試這個:

MySQL:

select ROUND(339/1000,2)
0.34

select ROUND(33/100,2)
0.33

SQL 服務器:

select ROUND(339/1000.0,2)
0.340000

select ROUND(33/100.0,2)
0.330000

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM