我正在尝试将String转换为整数,我得到NumberFormatException
。原因很明显。但我需要一个解决方法。以下是示例代码。
public class NumberFormatTest {
public static void main(String[] args) {
String num = "9.18E+09";
try{
long val = Long.valueOf(num);
}catch(NumberFormatException ne){
//Try to convert the value to 9180000000 here
}
}
}
我需要评论部分中的逻辑,通用的一个会很好。感谢。
答案 0 :(得分:77)
使用Double.valueOf()
并将结果转换为long
:
Double.valueOf("9.18E+09").longValue()
答案 1 :(得分:13)
BigDecimal bd = new BigDecimal("9.18E+09");
long val = bd.longValue();
但这会增加开销,而小数字则不需要。对于long
中可表示的数字,请使用Joachim Sauer的解决方案。