我已经花了很长时间,试图在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