繁体   English   中英

字符串到两位小数的双转换

[英]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);

这里输出:

字符串格式 34.00
双格式 34.0

我不想使用BigDecimal

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

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

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

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

或者同样:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM