我可以在哪里存储用户输入的极大数,并将其与byte, short, int, long数据类型进行比较



我想从用户那里输入数字,并检查数字是否适合字节,短,int,长数据类型,如果用户输入的数字非常大,我只是显示输入的数字不能适合任何数据类型。

import java.lang.Math;
import java.util.Scanner;
class Zcheck {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String l = sc.next();
if(l >= -128 && l <= 127)
System.out.println(l+" can be fitted in:n* byten* shortn* intn* long");
else if(l >= -32768 && l <= 32767)
System.out.println(l+" can be fitted in:n* shortn* intn* long");
else if(l >= -Math.pow(2, 31) && l <= (Math.pow(2, 31) - 1))
System.out.println(l+" can be fitted in:n* intn* long");
else if(l >= -Math.pow(2, 63) && l <= (Math.pow(2, 63) - 1))
System.out.println(l+" can be fitted in:n* long");
else
System.out.println(l+" can't be fitted anywhere.");
}
}
}

当用户输入一个可以存储在long类型中的数字时,事情是ok的,我只是创建一个long变量,并将其与数据类型的范围进行比较,并使用if-else显示适当的消息。但是当用户输入非常大的数字时,问题是我不能在长数据类型中存储这么大的数字。所以我尝试了字符串或BigInteger数据类型,但进一步的问题发生了,我不能比较字符串或BigInteger与另一个数据类型的if-else条件。

不能使用<和祝辞。对于计算机,字符串"127";根本不是一个数字。这就像问别人"苹果比5个大吗?"这不是一个可以解决的问题。>

你说你正在与"extremely large"数字,虽然127并不是很大。但假设这是真的,您将希望首先将字符串解析为long,然后再进行比较。这就解释了如何做得很好。

同样,这段代码根本不接受用户输入。你是否也需要帮助,或者你只是还没有实现它?

最新更新