帮助我开始编程 我想将一个大数字(999999999999999999999+)存储到变量中。 另一个大数字分配给另一个变量。 我想把这两个变量相互分开。 我该怎么做?
我有这个代码。那不行。
String a = "9999999999999999999999";
String b = "99999"
while(b < a)
{
a / b;
c = a / b;
c / b;
a = c / b;
}
if(a <= b)
{
System.out.print(a)
}
我自己创造了这个问题,我想要这个工作,但它不会。 有人可以给我一些建议吗?
答案 0 :(得分:4)
String
对象只是文本。你不能用另一个文本划分文本 - 这是一个没有意义的操作。
如果int
不足够大,您可以使用long
这是一个64位长的整数,最多可达9223372036854775808
。
另一个选择是使用类型为float
或double
的浮点数学运算。它们代表一个带有指数的数字,它给出了一个巨大的范围。但是,浮点值越大越不准确,因此您可能会出现意外的不准确性(sometimes even for small values)。
如果您需要对最后一位数字精确的大数字和算术,您应该使用类BigInteger或BigDecimal(取决于您是否需要小数位)。这些类允许您执行具有任意大小数量的算术。 缺点是具有这些类的对象的算术比使用本机数据类型慢得多。
答案 1 :(得分:0)
其中一些答案毫无意义,哈哈。
此代码有2个问题。首先,a和b被声明为字符串,你不能分割字符串(我想?我从来没有测试过这一点,但我非常怀疑)
首先,java的Interger变量是32位。换句话说,它们不能存储超过9个字符。 所以int a已经无效了。
然后你的选择是解析一个int,或者只是将它们改为整数,然后你修复一个值。
Ex for parse。
int aInt = Integer.parseInt(a);
int bInt = Integer.parseInt(b);
然后使用aInt和bInt进行计算。
答案 2 :(得分:0)
首先,你有两个变量,它们都是String,所以你不能分割它们,你应该在编译应用程序时看到这个错误“operator /不能应用于java.lang.String,java.lang。字符串”。
我认为你的方法是将数字存储在一个数组中,然后将它们相互划分,这可能是一个合理的解决方案,但有两个注释:
总之,我建议您查看BigInt和BigDecimal文档。他们绝对适合你。另外,想想我提到的第一个解决方案。
答案 3 :(得分:0)
首先,未声明c
其次,字符串基本上是文本,&#34;你好&#34;等
第三,您的a
非常大,因此使用int
无法正常工作,因此为了解决此问题,请使用BigInteger
答案 4 :(得分:-2)
您还没有声明变量c
您刚刚声明如果您将c = a / b
声明为double
而不是{{1}},则{{1}} a / b会更好一个字符串,因为你不能分割字符串。