字符串到带 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);
重申其他评论:双重是双重。它没有固有的显示格式。格式化它取决于您如何显示它。
我正在使用以下代码来格式化双精度值。 例如,如果输入为 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);
重申其他评论:双重是双重。它没有固有的显示格式。格式化它取决于您如何显示它。