将 Double 解析为特定格式

Posted

技术标签:

【中文标题】将 Double 解析为特定格式【英文标题】:Parse Double to a specific format 【发布时间】:2018-07-27 10:19:40 【问题描述】:

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

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

这会返回57.0,我希望57.000 以双精度格式返回。 我可能会问错问题吗?

【问题讨论】:

你可以得到一个像57.0这样的double,或者你可以把它格式化为一个像57.000这样的字符串。最后没有区别,但是字符串表示允许您格式化双精度。 【参考方案1】:

双精度数没有特定格式。

将 Double 值设为 57.0 或 57.000 对于计算机而言是相同的,但对于用户而言则不同。 作为人类,你读的不是 Double,而是 Double 的 String 表示形式。

如果您希望 Double 显示为 3 个小数,您必须使用 DecimalFormat 将其转换为 String

【讨论】:

【参考方案2】:
double d = 57.0;
NumberFormat numFormat = NumberFormat.getInstance();
numFormat.setMaximumFractionDigits(3);
numFormat.setMinimumFractionDigits(3);
System.out.println(numFormat.format(d));

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

【讨论】:

以上是关于将 Double 解析为特定格式的主要内容,如果未能解决你的问题,请参考以下文章

如何将double值格式化为时间

java 将double转换为货币格式。

将金额字符串解析为数字

将 C# Double 格式化为以三的倍数为单位的科学记数法

如何使用 SwiftyJSON 解析特定格式的 json?

常见的十进制格式