0 java java.util.scanner long-integer
我正在尝试使用Java Scanner从文本文件(File.txt)中读取20位长.
java.util.Scanner filereader = new java.util.Scanner(new File("File.txt"));
longNumber = (long) filereader.nextLong();
Run Code Online (Sandbox Code Playgroud)
这将返回以下错误:
Exception in thread "main" java.util.InputMismatchException: For input string: "37107287533902102798"
at java.util.Scanner.nextLong(Scanner.java:2271)
at java.util.Scanner.nextLong(Scanner.java:2225)
at scanner.Scanner.main(Scanner.java:14)
Run Code Online (Sandbox Code Playgroud)
当我将数字的长度减少到19位或更少时,它运行得很好.有人可以解释我如何使用20+数字吗?
long无法存储无限长度的数字.它只能达到(2^63)-1.见这里:( 链接).
长数据类型是64位带符号的二进制补码整数.它的最小值为-9,223,372,036,854,775,808,最大值为9,223,372,036,854,775,807(含).当需要比int提供的值更宽的值时,请使用此数据类型.
要将其用于更多数字,您必须使用BigInteger(链接到文档).
java.util.Scanner filereader = new java.util.Scanner(new File("File.txt"));
bigInt = new BigInteger(filereader.nextLine());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
990 次 |
| 最近记录: |