如何在没有尾数/指数格式的情况下打印浮点值?

时间:2010-06-09 18:40:10

标签: java

我正在尝试打印双值。它是用matissa和exponent格式打印的,这不是我想要的。例如,我的程序打印1.234567E6的值为1243567.如何打印1234657

4 个答案:

答案 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结合使用。