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