java - 在java中从txt中读取长整数

标签 java long-integer

我在文本文件中有一个长整数列表。我想在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/

相关文章:

java - int(primitive) 值未隐式转换为 long(primitive)

java - 一个类如何继承 Object 类和另一个显式父类(super class)?

Java:将两个输入的整数加2

java - 我该如何阻止这个整数溢出?

c - 如何在c中将位设置为表格

java - 斐波那契数列中 f(93) 处的数字为负值,怎么办?

java - 如何用jUnit声明数据库列的Grails Controller 更新?

java - 在线 Java 代码分析器

java - 使用非交互式 shell 脚本获取文本文件的第 n 行

java - 为什么长期不能从零开始?