如何以人类可读的格式显示BigDecimal值?

时间:2014-01-31 13:20:04

标签: java

假设我们有一个像这样设置的BigDecimal变量,我们无法改变它的创建方式:

BigDecimal num = new BigDecimal(6.0053);

因此我们会在输出后看到以下'漂亮'值:

System.out.println(num);   //0053000000000000824229573481716215610504150390625

我发现解决此问题的唯一方法是使用BigDecimal.valueOf():

System.out.println(BigDecimal.valueOf(num.doubleValue()));   //6.0053

但是有更简单的解决方案吗?

提前致谢。

4 个答案:

答案 0 :(得分:2)

使用java.text.DecimalFormat格式化数字。

NumberFormat format = new DecimalFormat("0.####");
System.out.println(format.format(num));

可以找到格式选项here

答案 1 :(得分:2)

BigDecimal num = new BigDecimal(6.0053);
DecimalFormat df=new DecimalFormat("0.0000");
System.out.println(df.format(num));

答案 2 :(得分:1)

System.out.println(new DecimalFormat("###,##0.00").format(myBigDecimalVariable));

答案 3 :(得分:1)

您可以将String.format与“g”格式类型配合使用。它允许您控制所需的位数等。有关所有格式选项,请参阅here

BigDecimal num = new BigDecimal(6.0053);
String formated = String.format("%6.5g", num);
System.out.println(formated);

(结果:6.0053