Java 如何获取大于最大整数值的整数值
我知道在Java中,int可以得到2147483647的值。但我想要更多的价值。我有一个公式,例如: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提供的值,请使用
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
。