【问题标题】:Parse Double to a specific format将 Double 解析为特定格式
【发布时间】: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这样的字符串。最后没有区别,但是字符串表示允许您格式化双精度。

标签: java format number-formatting


【解决方案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 通过设置最小和最大小数位数来显示小数点后三位(如上例所示)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      相关资源
      最近更新 更多