2012-05-17 47 views
3

我有一个类似于:7.6E+7的字符串。用指数解析字符串(Java)

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

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

谢谢!

回答

4
long n = Double.valueOf("7.6E+7").longValue(); 
System.out.println(d); 
// prints 76000000 to the output. 
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

1

如果您确定数量最终可铸造成一个整数,而不会丢失精度比或者你可以这样做:

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

它打印76000000到输出。