我已經花了很長時間,試圖在java中轉換數字1.2846202978398e + 19,沒有任何運氣。目前我正在試圖做的(long)Double.parseDouble(hashes)
,但是這給了9223372036854775807,這顯然是不正確的。實際數字應該看起來像這樣12855103593745000000.轉換大科學數字爲長
使用int val = new BigDecimal(stringValue).intValue();
返回-134589568
,因爲它無法保存結果。切換代碼到long val = new BigDecimal(hashes).longValue();
給我-5600541095311551616這也是不正確的。
我假設這是由於雙倍相比長的大小發生。
任何想法?
BigDecimal的? BigInteger的? –
[Java:將科學記數法轉換爲常規int]可能的重複(https://stackoverflow.com/questions/2546147/java-convert-scientific-notation-to-regular-int) –
已更新的問題以反映您的意見:) – Jazerix