Java 将Double解析为特定格式

Java 将Double解析为特定格式,java,format,number-formatting,Java,Format,Number Formatting,我想将Double值解析为特定格式。我不想把它当作一根绳子。 我正在努力 DecimalFormat format3DigitsAfterDecimal = new DecimalFormat("#0.000"); double d = 57; Double.parseDouble(format3DigitsAfterDecimal.format(d)); 这将返回57.0,我希望57.000通过format方法以双精度返回。 我可能问错问题了吗 double没有特定的格式 获取双倍值5

我想将Double值解析为特定格式。我不想把它当作一根绳子。 我正在努力

 DecimalFormat format3DigitsAfterDecimal = new DecimalFormat("#0.000");
 double d = 57;
 Double.parseDouble(format3DigitsAfterDecimal.format(d));
这将返回
57.0
,我希望
57.000
通过format方法以双精度返回。
我可能问错问题了吗

double没有特定的格式

获取双倍值57.0或57.000对于计算机是相同的,但对于用户则不同。 作为一个人,你读的不是Double,而是Double的字符串表示

如果您希望以3位小数显示双精度,则必须使用
DecimalFormat

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

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

您可以获得一个类似于
57.0
的双精度字符串,也可以将其格式化为类似于
57.000
的字符串。最后没有区别,但是字符串表示允许您格式化double。