以2位小数进行双倍转换的字符串
问题描述:
我正在使用以下代码格式化双精度值。 例如,如果输入是,则输出双倍值应该是34.00。以2位小数进行双倍转换的字符串
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);
这里输出:
字符串格式34.00
双格式的34.0
我不想使用BigDecimal
。
这里我们最后的要求是将格式化的值存储在双类型字段中。
答
A double
可以格式化为您在第一个示例中看到的任何种类的String
,但double
在内部没有格式(至少有一个可以修改)。这就是为什么无论你做什么都不能使你的第二行打印34.00
,而不将它转换为String
。
答
嗯,我的意思是,总是有好老的printf ...
System.out.printf("value is %.0f\n", value);
或同样地:
String formatted = String.format("%.0f", value);
重申的其他意见:双为双。它没有固有的显示格式。格式化它是如何显示它的函数。
+0
简短而快捷! – blackpen
“双”值没有“格式”。 –
您正在存储您的数值。 'double'不能保留重要的数字,所以无论你的字符串有多少数字,当你打印出来时你仍然会得到34.0。打印时,您将不得不重新格式化双面打印。 –
请勿将其分配给* formattedValue *。打印* decimalFormat.format(value)*本身(如@Reimeus所示) – blackpen