在 Java 中,把 double(双精度)转成字符串(String) 有多种常见方式,下面按使用场景给你总结一下。
String.valueOf(double)double d = 3.1415926;
String s = String.valueOf(d);
System.out.println(s); // "3.1415926"
特点:
Double.toString(double)double d = 3.14;
String s = Double.toString(d);
特点:
String.valueOf() 本质一样double d = 3.14;
String s = d + "";
特点:
String.formatdouble d = 3.1415926;
String s = String.format("%.2f", d);
System.out.println(s); // "3.14"
DecimalFormatimport java.text.DecimalFormat;
double d = 3.1415926;
DecimalFormat df = new DecimalFormat("#.00");
String s = df.format(d);
System.out.println(s); // "3.14"
适用场景:
double d1 = 1.23e5;
double d2 = Double.NaN;
double d3 = Double.POSITIVE_INFINITY;
System.out.println(String.valueOf(d1)); // "123000.0"
System.out.println(String.valueOf(d2)); // "NaN"
System.out.println(String.valueOf(d3)); // "Infinity"
System.out.println(0.1 + 0.2); // 0.30000000000000004
如果你需要精确表示(如金额),不要用 double,而应使用:
BigDecimal bd = new BigDecimal("0.1");
| 场景 | 推荐方式 |
|---|---|
| 普通转换 | String.valueOf(d) |
| 控制小数位 | String.format() / DecimalFormat |
| 科学计算 | 注意 double 精度问题 |
| 金额 | BigDecimal |
如果你有具体场景(比如保留几位小数、是否要去掉末尾 0、转 JSON、数据库存储等),可以告诉我,我帮你选最合适的写法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。