3

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

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

我尝试使用substring隔离E+7部件,然后解析7部件,然后将小数位移动到 7 以上。有没有更简单的方法来做到这一点?

谢谢!

4

4 回答 4

5
long n = Double.valueOf("7.6E+7").longValue();
System.out.println(d);
// prints 76000000 to the output.
于 2012-05-17T23:13:59.053 回答
3

我建议使用Double.parseDouble()

double val = Double.parseDouble(str);

str输入字符串在哪里。

于 2012-05-17T22:59:12.203 回答
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

于 2012-05-17T22:59:27.267 回答
1

如果您确定该数字最终可以转换为整数而不会丢失精度,那么您可以这样做:

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

打印76000000到输出。

于 2012-05-17T23:00:34.783 回答