Java格式化小數(shù)并保留兩位小數(shù)的四種方法
在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)文章
SpringBoot啟動(dòng)太慢的7個(gè)優(yōu)化技巧
項(xiàng)目越做越大,SpringBoot啟動(dòng)時(shí)間從幾秒變成了30多秒,改一行代碼等半分鐘,效率太低了,今天分享7個(gè)優(yōu)化技巧,親測(cè)有效,大家可以根據(jù)需要進(jìn)行選擇2025-12-12
Java Process與Runtime()的使用及調(diào)用cmd命令阻塞的解決方案
這篇文章主要介紹了Java Process與Runtime()的使用及調(diào)用cmd命令阻塞的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
Spring mvc防止數(shù)據(jù)重復(fù)提交的方法
這篇文章主要為大家詳細(xì)介紹了Spring mvc防止數(shù)據(jù)重復(fù)提交的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11
解決FileWriter 寫(xiě)入文本不換行的問(wèn)題
這篇文章主要介紹了解決FileWriter 寫(xiě)入文本不換行的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
Java報(bào)錯(cuò):java.lang.UnsatisfiedLinkError問(wèn)題的解決辦法
在Java開(kāi)發(fā)中,java.lang.UnsatisfiedLinkError是一種與本地方法調(diào)用相關(guān)的常見(jiàn)異常,本文將詳細(xì)分析這一異常的背景、可能的原因、錯(cuò)誤代碼示例、正確代碼示例,以及編寫(xiě)代碼時(shí)需要注意的事項(xiàng),需要的朋友可以參考下2024-09-09
SpringBoot整合Lombok及常見(jiàn)問(wèn)題解決
本文主要介紹了SpringBoot整合Lombok及常見(jiàn)問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04

