将 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 解析为特定格式的主要内容,如果未能解决你的问题,请参考以下文章