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

3

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

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

我尝试使用substring来隔离E+7部分,然后解析7部分,最后将小数点向右移动7位。有没有更简单的方法?

谢谢!

4个回答

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

3
您可以使用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

我建议使用Double.parseDouble()方法:

double val = Double.parseDouble(str);

其中str是输入的字符串。


1
如果您确定该数字最终可以转换为整数而不会失去精度,那么您可以选择以下方法:
int d = (int) Double.parseDouble("7.6E+7");
System.out.println(d);

这将会输出 76000000


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接