我在文本文件中有一个长整数列表。我想在java中将这些数字读取到长数组列表中。输出号码存储在文件中:
2.2278e+08
1.2339e+09
6.1868e+08
我读取这些长数字的代码如下:
for (String line : Files.readAllLines(Paths.get("ids.txt"))) {
ids.add(Long.parseLong(line, 10));
System.out.println(Double.valueOf(line).longValue());
}
但是我遇到了以下异常:
Exception in thread "main" java.lang.NumberFormatException: For input string: "2.2278e+08"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Long.parseLong(Long.java:589)
at twittertrendsetters.TwitterTrendSetters.main(TwitterTrendSetters.java:580)
Java 结果:1
如何将 2.2278e+08 转换为实际上的长整数 22278111
最佳答案
问题是像 2.2278e+08、1.2339e+09 和 6.1868e+08 这样的数字是浮点表示法,因此不能直接解析为长数字。
但是您可以将它们解析为双值,执行类似的操作
long l = Double.valueOf("2.2278e+08").longValue();
当然,这偏离了这样的假设:您知道所有这些数字都是整数并且它们适合 long 值的大小。否则您可能需要诉诸其他技术。
关于java - 在java中从txt中读取长整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28215141/