温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java Double 双精度怎样格式化

发布时间:2026-10-26 10:35:58 来源:亿速云 阅读:98 作者:小樊 栏目:编程语言

在 Java 中,Double(双精度浮点数)常见的格式化方式有以下几种,按使用场景从简单到专业说明:


一、使用 String.format(最常用)

double d = 1234.56789;

// 保留两位小数
String s1 = String.format("%.2f", d);

// 千分位 + 两位小数
String s2 = String.format("%,.2f", d);

System.out.println(s1); // 1234.57
System.out.println(s2); // 1,234.57

格式说明:

  • %f:浮点数
  • .2:保留两位小数
  • ,:千分位分隔符

二、使用 DecimalFormat(灵活、推荐)

import java.text.DecimalFormat;

double d = 1234.56789;

DecimalFormat df = new DecimalFormat("#,##0.00");
String result = df.format(d);

System.out.println(result); // 1,234.57

常用模式:

  • 0.00:至少两位小数
  • #,##0.00:千分位 + 两位小数
  • 0.0%:百分比
DecimalFormat percent = new DecimalFormat("0.00%");
System.out.println(percent.format(0.1234)); // 12.34%

三、使用 BigDecimal(高精度计算 & 格式化)

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;

BigDecimal bd = new BigDecimal("1234.5678")
        .setScale(2, RoundingMode.HALF_UP);

System.out.println(bd); // 1234.57

✅ 推荐场景:

  • 金额
  • 不允许精度丢失
  • 严格四舍五入

四、使用 NumberFormat(国际化)

import java.text.NumberFormat;
import java.util.Locale;

double d = 1234.567;

NumberFormat nf = NumberFormat.getInstance(Locale.US);
nf.setMaximumFractionDigits(2);
System.out.println(nf.format(d)); // 1,234.57

五、常见需求示例

✅ 保留两位小数(四舍五入)

String.format("%.2f", 3.14159); // "3.14"

✅ 去掉小数

String.format("%.0f", 3.9); // "4"

✅ 科学计数法

String.format("%.2e", 12345.678); // "1.23e+04"

总结推荐

场景 推荐方式
简单输出 String.format
金额 / 格式复杂 DecimalFormat
精确计算 BigDecimal
多语言 NumberFormat

如果你有具体业务场景(如金额、JSON、日志、前端展示),我可以给你更合适的示例。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手