首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Java中格式化数字?

如何在Java中格式化数字?
EN

Stack Overflow用户
提问于 2008-09-08 19:59:45
回答 9查看 309K关注 0票数 120

如何在Java中格式化数字?

什么是“最佳实践”?

在格式化一个数字之前,我需要对它进行舍入吗?

32.302342342342343 => 32.30

.7323 => 0.73

等。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2008-09-08 20:04:04

this thread中,有不同的方法可以做到这一点:

double r = 5.1234;
System.out.println(r); // r is 5.1234

int decimalPlaces = 2;
BigDecimal bd = new BigDecimal(r);

// setScale is immutable
bd = bd.setScale(decimalPlaces, BigDecimal.ROUND_HALF_UP);
r = bd.doubleValue();

System.out.println(r); // r is 5.12

f = (float) (Math.round(n*100.0f)/100.0f);

DecimalFormat df2 = new DecimalFormat( "#,###,###,##0.00" );
double dd = 100.2397;
double dd2dec = new Double(df2.format(dd)).doubleValue();

// The value of dd2dec will be 100.24

DecimalFormat()似乎是最动态的方式,而且在阅读其他代码时也很容易理解。

票数 127
EN

Stack Overflow用户

发布于 2008-09-08 20:04:18

你和String.format()将成为新的最好的朋友!

https://docs.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html#syntax

 String.format("%.2f", (double)value);
票数 74
EN

Stack Overflow用户

发布于 2008-09-08 22:50:23

请注意,从NumberFormat (和大多数其他格式的后代)派生的类是不同步的。创建格式对象并将其存储在util类的静态变量中是一种常见的(但危险的)实践。在实践中,它将几乎总是工作,直到它开始经历显著的负载。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档