Java格式化小數(shù)并保留兩位小數(shù)的四種方法
在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)文章
詳解用Spring Boot零配置快速創(chuàng)建web項目
本篇文章主要介紹了詳解用Spring Boot零配置快速創(chuàng)建web項目,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-03-03JAVA 統(tǒng)計字符串中中文,英文,數(shù)字,空格,特殊字符的個數(shù)
這篇文章主要介紹了JAVA 統(tǒng)計字符串中中文,英文,數(shù)字,空格,特殊字符的個數(shù) ,本文通過一段代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-06-06使用Java實現(xiàn)轉(zhuǎn)換掃描的文檔為可搜索的PDF
這篇文章主要為大家詳細介紹了如何使用Java實現(xiàn)轉(zhuǎn)換掃描的文檔為可搜索的PDF,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12Springboot 整合 Java DL4J 實現(xiàn)農(nóng)產(chǎn)品質(zhì)量檢測系統(tǒng)(推薦)
本文詳細介紹了系統(tǒng)的搭建過程,包括技術(shù)選型、數(shù)據(jù)處理、模型訓(xùn)練和評估等關(guān)鍵步驟,系統(tǒng)采用卷積神經(jīng)網(wǎng)絡(luò),對水果成熟度和缺陷進行識別,有效解決了傳統(tǒng)方法成本高、效率低的問題,有助于提升農(nóng)產(chǎn)品檢測的科技含量和自動化水平2024-10-10如何利用postman完成JSON串的發(fā)送功能(springboot)
這篇文章主要介紹了如何利用postman完成JSON串的發(fā)送功能(springboot),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07Java設(shè)計模式之工廠模式分析【簡單工廠、工廠方法、抽象工廠】
這篇文章主要介紹了Java設(shè)計模式之工廠模式,結(jié)合實例形式分析了簡單工廠、工廠方法、抽象工廠等相關(guān)功能、實現(xiàn)與使用方法,需要的朋友可以參考下2018-04-04JVM實戰(zhàn)系列之CPU100%和內(nèi)存100%排查
本文主要介紹了JVM實戰(zhàn)系列之CPU100%和內(nèi)存100%排查,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06