Java格式化小數并保留兩位小數的四種方法
在Java中格式化小數并保留兩位小數,可以通過以下幾種方法實現:
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); // 設置四舍五入模式
String formatted = df.format(number);
System.out.println(formatted); // 輸出:3.14
}
}
說明:
模式 “0.00”:強制保留兩位小數,不足補零(例如 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”:自動保留兩位小數,不足補零。
Locale 問題:默認使用系統(tǒng)區(qū)域設置,如需固定小數點符號為.,可指定 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) 導致的精度問題。
setScale(2, RoundingMode.HALF_UP):設置小數位數和舍入模式。
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):固定兩位小數。
Locale.US:指定小數點符號為 .,千分位分隔符為 ,。
總結
| 方法 | 適用場景 | 特點 |
|---|---|---|
| DecimalFormat | 靈活自定義格式(如貨幣、百分比) | 需設置模式,支持復雜格式 |
| String.format() | 快速簡單格式化 | 代碼簡潔,適合基礎需求 |
| BigDecimal | 高精度計算(如金融場景) | 避免浮點數精度問題 |
| NumberFormat | 本地化格式(如千分位分隔符) | 支持國際化,自動處理區(qū)域差異 |
以上就是Java格式化小數并保留兩位小數的四種方法的詳細內容,更多關于Java格式化小數并保留兩位小數的資料請關注腳本之家其它相關文章!
相關文章
Java Process與Runtime()的使用及調用cmd命令阻塞的解決方案
這篇文章主要介紹了Java Process與Runtime()的使用及調用cmd命令阻塞的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06
Java報錯:java.lang.UnsatisfiedLinkError問題的解決辦法
在Java開發(fā)中,java.lang.UnsatisfiedLinkError是一種與本地方法調用相關的常見異常,本文將詳細分析這一異常的背景、可能的原因、錯誤代碼示例、正確代碼示例,以及編寫代碼時需要注意的事項,需要的朋友可以參考下2024-09-09

