2016-05-12 69 views
0

在Java中將指數整數字符串類型(例如"2.4490677E7")轉換爲整數字符串(例如"24490677")的最佳/最快方法是什麼?如何將指數數字字符串轉換爲整數字符串

編輯:輸入已知總是一個整數。

我目前的建議如下(使用org.apache.commons.lang.math.NumberUtils來自Apache的百科全書):

String input = "2.4490677E7"; 
String res = null; 
Double d = NumberUtils.toDouble(input); 
if (d != 0.0d) { 
    // we have a double number here 
    res = String.format("%d", d.intValue()); 
} 
+0

有什麼問題呢? – Amit

+0

2.4112E2 *轉換*的結果應該是什麼? –

+3

如果您需要精確度不變,那麼您可以使用BigDecimal讀取字符串,然後將其轉換爲int值。 –

回答

2

如果你需要的精度是不動,那麼你可以使用的BigDecimal讀取字符串,然後將其轉換爲int值

+2

'new BigDecimal(input).toPlainString()' –

+0

轉換爲int部分,在他的情況下不需要 –

+0

@JoopEggen這將是我的首選解決方案。 – dnl

1

嗨,我們可以從這個 「2.4490677E7」 得到這個 「24490677」 這裏是代碼

import java.math.BigDecimal; 

public class Test { 
public static void main(String[] args) { 

    String value = "2.4490677E7"; 
    BigDecimal result = new BigDecimal(value); 
    System.out.println(result.longValue()); 
} 
} 

輸出將是:2 4490677

我希望你在找這個.. 謝謝。

1

怎麼樣

Integer res = ((Double) Double.parseDouble(input)).intValue();