假设我们有一个像这样设置的BigDecimal变量,我们无法改变它的创建方式:
BigDecimal num = new BigDecimal(6.0053);
因此我们会在输出后看到以下'漂亮'值:
System.out.println(num); //0053000000000000824229573481716215610504150390625
我发现解决此问题的唯一方法是使用BigDecimal.valueOf():
System.out.println(BigDecimal.valueOf(num.doubleValue())); //6.0053
但是有更简单的解决方案吗?
提前致谢。
答案 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
)