首頁 >Java >java教程 >如何在 Java 中正確地將雙精度數舍入到小數點後兩位?

如何在 Java 中正確地將雙精度數舍入到小數點後兩位?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-30 07:35:16774瀏覽

How to Correctly Round Doubles to Two Decimal Places in Java?

Java 中四捨五入到兩位小數

許多開發人員在嘗試在Java 中將浮點數四捨五入到特定小數位時遇到挑戰。當所需的輸出必須保持雙精度時尤其如此。

一個常見的方法涉及利用 Math.round(),如以下程式碼所示:

class Round {
    public static void main(String[] args) {

        double a = 123.13698;
        double roundOff = Math.round(a * 100) / 100;
        
        System.out.println(roundOff);
    }
}

但是,這種方法常常無法產生預期的結果。它不是四捨五入到 123.14,而是輸出 123。

要修正此問題,需要對第 4 行稍作修改:

double roundOff = Math.round(a * 100.0) / 100.0;

透過將 .0 加到乘法因子,結果轉換為具有兩位小數的雙精度型。這確保了最終結果也有兩位數小數。

或者,按照@Rufein的建議,可以將舍入值轉換為雙精度:

double roundOff = (double) Math.round(a * 100) / 100;

這種方法也可以有效地產生所需的輸出123.14 具有兩位小數。

以上是如何在 Java 中正確地將雙精度數舍入到小數點後兩位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn