java解析float而不创建带指数的浮点数

时间:2011-09-08 10:10:43

标签: java primitive-types

我要解析一个字符串来像这样解析:

Float.parseFloat(value_.toString());

当我解析字符串数字时:“13299802.60”, 我明白了:1.3299803E7

我想得到没有指数符号的字符串浮点数。

如何做到这一点?

感谢提前。

3 个答案:

答案 0 :(得分:2)

float的默认输出格式是超过一定大小的科学记数法。

如果要以正常的十进制表示法输出,请在打印时使用格式字符串为“#.00”的NumberFormat。

答案 1 :(得分:1)

改为使用

new java.lang.BigDecimal(value_.toString());

BigDecimal实际上是十进制数而不是浮点数。 2(2位小数位)的比例将保持

答案 2 :(得分:1)

float是32位,最多7位或精度。如果你想要更高的精确度,使用64位的双精度并且精度高达16位(实际上,总是使用double或BigDecimal)

String text = "13299802.60";
System.out.printf("As float %.2f%n", Float.parseFloat(text));
System.out.printf("As double %.2f%n", Double.parseDouble(text));
System.out.println("As BigDecimal "+ new BigDecimal(text));

打印

As float 13299803.00
As double 13299802.60
As BigDecimal 13299802.60