将Double解析为特定格式

时间:2018-07-27 10:19:40

标签: java format number-formatting

我想将Double值解析为特定格式。我不希望它是字符串。 我正在尝试

 DecimalFormat format3DigitsAfterDecimal = new DecimalFormat("#0.000");
 double d = 57;
 Double.parseDouble(format3DigitsAfterDecimal.format(d));

这将返回57.0,我希望57.000由format方法返回两次。 我可能会问错问题吗?

2 个答案:

答案 0 :(得分:1)

双精度没有特定格式。

获得Double值57.0或57.000对于计算机是相同的,但对于用户而言是相同的。 作为人类,您不会阅读Double,而是Double的String表示形式。

如果您希望双精度显示的小数点后3位,必须使用DecimalFormat将其转换为字符串

答案 1 :(得分:1)

double d = 57.0;
NumberFormat numFormat = NumberFormat.getInstance();
numFormat.setMaximumFractionDigits(3);
numFormat.setMinimumFractionDigits(3);
System.out.println(numFormat.format(d));

您不能更改小数的值,但是可以使用NumberFormat通过设置最小和最大小数位数来显示小数点后三个位,如上例所示。