Java 如何获取大于最大整数值的整数值

Java 如何获取大于最大整数值的整数值,java,memory,int,Java,Memory,Int,我知道在Java中,int可以得到2147483647的值。但我想要更多的价值。我有一个公式,例如: double x = a/(b*c); 所以分母(b*c)可以达到10^10,甚至更高。但每当我执行公式时,值总是限制在2147483647。我知道,因为x必须总是小于1.0。 P/S:如果满足某些条件,即使变量“a”也可以达到10^10。 a、 b、c都是整数。使用long类型,仍然是整数类型,但其最大值高于int最大int值是一个java语言常量。如果您希望实数大于int提供的值,请使用

我知道在Java中,int可以得到2147483647的值。但我想要更多的价值。我有一个公式,例如:

double x = a/(b*c); 
所以分母(b*c)可以达到10^10,甚至更高。但每当我执行公式时,值总是限制在2147483647。我知道,因为x必须总是小于1.0。 P/S:如果满足某些条件,即使变量“a”也可以达到10^10。
a、 b、c都是整数。

使用long类型,仍然是整数类型,但其最大值高于int

最大int值是一个java语言常量。如果您希望实数大于
int
提供的值,请使用。如果需要大于
int
long
提供的整数,可以使用
biginger

BigInteger a = new BigInteger("9");
BigInteger b = new BigInteger("3");
BigInteger c = a.add(b); // c.equals(new BigInteger("12"), a and b are unchanged
biginger
Long
Integer
一样是不可变的,但不能使用常用的运算符符号。改为使用类中的

我还注意到你的结局是一个
double
。如果可以在整个公式中使用双倍,则值得注意的是,它们的最大值为:
1.7976931348623157 E 308

.

试试这个

double x = a / ((double) b * c);

java会自动将a和c转换为double。查看其中一个操作数是否为double类型,另一个操作数是否转换为double

既然是您要求的,下面是一个
biginger
示例:

BigInteger a = new BigInteger("yourNumberInStringFormA");
BigInteger b = new BigInteger("yourNumberInStringFormB");
BigInteger c = new BigInteger("yourNumberInStringFormC");

BigInteger x = a.divide(b.multiply(c));
其中,
“yourNumberInStringForm”
是可选的减号和数字(无空格或逗号)。例如
biginger z=new-biginger(“-34634”)
NB:
biginger
如果您的号码在其范围内,实际上会为您返回一个
long
<代码>长度以
L
结尾,如:

long num = 372036854775807L;

长度的最大长度为:9223372036854775807。如果你的数字小于这个数字,那么使用
long
long
,它的包装器,在
biginger
上,会让你的生活更轻松。由于使用
long
,您不必使用除法/乘法等方法。

您使用的是int还是double?当你执行这个公式时,所有变量都是双倍的,你不应该达到这个极限。我做了一项研究,我发现有一种叫做biginger的类型。我如何使用它呢?哦,基本上,大整数也受到长范围的限制。所以我最好使用长字体,因为我的值只能达到9 x 10^10不,我做了一个编辑<当您的号码小于
long
时,code>biginger
将为您返回一个
long
。处理
long
biginger
容易得多。如果您的数字小于最大
long
,则应在
biginger
上使用
long