字符串到带 2 位小数的 double 转换

String to double conversion with 2 decimal places

我正在使用以下代码来格式化双精度值。 例如,如果输入为 34,则输出双精度值应为 34.00.

Double value = new Double(34);
DecimalFormat decimalFormat =new DecimalFormat();
decimalFormat.applyPattern("#.00");
System.out.println("String format " + decimalFormat.format(value));
double formattedValue =Double.valueOf(decimalFormat.format(value));
System.out.println("double format " + formattedValue);

这里输出:

String format 34.00
double format 34.0

我不想使用 BigDecimal

这里我们的最终需求是将格式化后的值存储在double类型的字段中。

A​​ double 可以格式化为 "any" 类型的 String 正如您在第一个示例中看到的那样,但是 double 内部没有格式(至少一个你可以修改的)。这就是为什么你不能让你的第二行打印 34.00 无论你做什么,而不将它转换为 String.

嗯,我的意思是,总是有很好的旧 printf...

System.out.printf("value is %.0f\n", value);

或者类似的:

String formatted = String.format("%.0f", value);

重申其他评论:双重是双重。它没有固有的显示格式。格式化它取决于您如何显示它。