亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java格式化小數(shù)并保留兩位小數(shù)的四種方法

 更新時間:2025年03月10日 09:54:03   作者:夢幻南瓜  
Java中格式化小數(shù)并保留兩位小數(shù)的四種方法:使用DecimalFormat、String.format()、BigDecimal和NumberFormat,每種方法都有其適用場景和特點,文章通過代碼示例介紹的非常詳細,需要的朋友可以參考下

在Java中格式化小數(shù)并保留兩位小數(shù),可以通過以下幾種方法實現(xiàn):

1. 使用 DecimalFormat 類

import java.text.DecimalFormat;
import java.math.RoundingMode;

public class DecimalFormatExample {
    public static void main(String[] args) {
        double number = 3.1415;

        DecimalFormat df = new DecimalFormat("0.00");
        df.setRoundingMode(RoundingMode.HALF_UP); // 設(shè)置四舍五入模式

        String formatted = df.format(number);
        System.out.println(formatted); // 輸出:3.14
    }
}

說明:

模式 “0.00”:強制保留兩位小數(shù),不足補零(例如 2.5 格式化為 2.50)。

RoundingMode.HALF_UP:四舍五入規(guī)則(3.145 → 3.15)。

2. 使用 String.format()

public class StringFormatExample {
    public static void main(String[] args) {
        double number = 3.1415;

        String formatted = String.format("%.2f", number);
        System.out.println(formatted); // 輸出:3.14
    }
}

說明:

格式字符串 “%.2f”:自動保留兩位小數(shù),不足補零。

Locale 問題:默認使用系統(tǒng)區(qū)域設(shè)置,如需固定小數(shù)點符號為.,可指定 Locale.US:

String formatted = String.format(Locale.US, "%.2f", number);

3. 使用 BigDecimal(高精度計算)

import java.math.BigDecimal;
import java.math.RoundingMode;

public class BigDecimalExample {
    public static void main(String[] args) {
        double number = 3.145;

        BigDecimal bd = BigDecimal.valueOf(number);
        bd = bd.setScale(2, RoundingMode.HALF_UP);

        String formatted = bd.toString();
        System.out.println(formatted); // 輸出:3.15
    }
}

說明:

BigDecimal.valueOf(number):避免直接使用 new BigDecimal(double) 導(dǎo)致的精度問題。

setScale(2, RoundingMode.HALF_UP):設(shè)置小數(shù)位數(shù)和舍入模式。

4. 使用 NumberFormat(本地化格式)

import java.text.NumberFormat;
import java.util.Locale;

public class NumberFormatExample {
    public static void main(String[] args) {
        double number = 1234.567;

        NumberFormat nf = NumberFormat.getInstance(Locale.US);
        nf.setMinimumFractionDigits(2);
        nf.setMaximumFractionDigits(2);

        String formatted = nf.format(number);
        System.out.println(formatted); // 輸出:1,234.57(含千分位分隔符)
    }
}

說明:

setMinimumFractionDigits(2) 和 setMaximumFractionDigits(2):固定兩位小數(shù)。

Locale.US:指定小數(shù)點符號為 .,千分位分隔符為 ,。

總結(jié)

方法適用場景特點
DecimalFormat靈活自定義格式(如貨幣、百分比)需設(shè)置模式,支持復(fù)雜格式
String.format()快速簡單格式化代碼簡潔,適合基礎(chǔ)需求
BigDecimal高精度計算(如金融場景)避免浮點數(shù)精度問題
NumberFormat本地化格式(如千分位分隔符)支持國際化,自動處理區(qū)域差異

以上就是Java格式化小數(shù)并保留兩位小數(shù)的四種方法的詳細內(nèi)容,更多關(guān)于Java格式化小數(shù)并保留兩位小數(shù)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論