欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

在Java中格式化小數(shù)并保留兩位小數(shù),可以通過(guò)以下幾種方法實(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
    }
}

說(shuō)明:

模式 “0.00”:強(qiáng)制保留兩位小數(shù),不足補(bǔ)零(例如 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
    }
}

說(shuō)明:

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

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

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

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

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
    }
}

說(shuō)明:

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

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(含千分位分隔符)
    }
}

說(shuō)明:

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

Locale.US:指定小數(shù)點(diǎn)符號(hào)為 .,千分位分隔符為 ,。

總結(jié)

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

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

相關(guān)文章

最新評(píng)論