使用指数解析字符串(Java)

时间:2012-05-17 22:55:30

标签: java string parsing int double

我有一个类似于7.6E+7的字符串。

我的问题很简单:如何将其转换为相应的数字:76000000

我尝试使用substring来隔离E+7部分,然后解析7部分,然后将小数位移到7以上。有更简单的方法吗?< / p>

谢谢!

4 个答案:

答案 0 :(得分:4)

long n = Double.valueOf("7.6E+7").longValue();
System.out.println(d);
// prints 76000000 to the output.

答案 1 :(得分:3)

我建议使用Double.parseDouble()

double val = Double.parseDouble(str);

其中str是输入字符串。

答案 2 :(得分:2)

您可以使用Double.parseDouble()将其作为数字。

String e = "7.6E+7";
System.out.println(Double.parseDouble(e));

给出输出7.6E7。如果您不想在输出中使用E,则可以使用

NumberFormat f = NumberFormat.getInstance();
f.setGroupingUsed(false);
System.out.println(f.format(Double.parseDouble(e)));

这将为您提供输出76000000而不会转换为整数。例如,在数字上加0.1将得到输出76000000.1

答案 3 :(得分:1)

如果您确定最终可以将数字转换为整数而不会丢失精度,则可以执行以下操作:

int d = (int) Double.parseDouble("7.6E+7");
System.out.println(d);

76000000输出到输出。