我正在尝试打印双值。它是用matissa和exponent格式打印的,这不是我想要的。例如,我的程序打印1.234567E6
的值为1243567.如何打印1234657
?
答案 0 :(得分:3)
BigDecimal.valueOf(double).toPlainString();
答案 1 :(得分:2)
您可以查看NumberFormat课程和DecimalFormat。
答案 2 :(得分:0)
答案 3 :(得分:0)
我一直在努力解决完全相同的问题,这里的两个答案提供了如何解决问题的线索:使用格式化程序。这两个答案都没有准确解释格式化Double值所需的参数,并避免使用指数表示法。
有两种选择。这些在文档中描述为十进制整数的“d”和十进制数的“f”。我真正需要的是“定点”格式,文档没有明确说明,但是如果你正确设置参数,f会给你一个固定点。如果将小数点设置为零,它也会给你一个整数显示。
对于Double值,12345678格式化会为您提供以下结果:
Double d = Double.parseDouble("12345678");
String r1 = String.format("%f",d); // 12345678.000000
String r2 = String.format("%10f",d); // 12345678.000000
String r3 = String.format("%5.2f",d); // 12345678.00
String r4 = String.format("%5.0f",d); // 12345678
String r5 = String.format("%,f",d); // 12,345,678.000000
String r6 = String.format("%,5.0f",d); // 12,345,678
String r7 = String.format("%d",d); // throws an exception!
在最后一个,即使你想要一个数字的整数显示,你也不能将'd'选项与Double结合使用。