我是Java编程新手,我的代码不会工作。有小费吗?
帮助我编程新手 我想将一个大数字(999999999999999999+)存储到变量中。 另一个大的数字分配给另一个变量。 我想把这两个变量分开。 我该怎么做 我有这个密码。那不行我是Java编程新手,我的代码不会工作。有小费吗?,java,variables,newline,biginteger,Java,Variables,Newline,Biginteger,帮助我编程新手 我想将一个大数字(999999999999999999+)存储到变量中。 另一个大的数字分配给另一个变量。 我想把这两个变量分开。 我该怎么做 我有这个密码。那不行 String a = "9999999999999999999999"; String b = "99999" while(b < a) { a / b; c = a / b; c / b; a = c / b; }
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)
}
String a=“9999999999999999”;
字符串b=“99999”
while(b如果(a您没有声明变量c
您只是声明了c=a/b
如果您将它们声明为double
而不是字符串,那么a/b工作得更好,因为您不能分割字符串。astring
对象只是文本。您不能将文本分割成另一个文本-这是一个不会分割字符串的操作没有道理
当inint
不够大时,可以使用long
,它是一个64位长的整数,最高可达9223372036854775808
另一种选择是将浮点数学与类型float
或double
一起使用。它们表示一个具有指数的数字,这给了它们一个很大的范围。但是,浮点值越大,其精确度就越低,因此可能会出现意外的不准确性()
当您需要大数字和精确到最后一位的算术运算时,您应该使用类或(取决于您是否需要小数)。这些类允许您对任意大小的数字执行算术运算。
缺点是,使用这些类的对象的算术运算比使用本机数据类型的算术运算慢得多。这些答案中的一些毫无意义,哈哈
这段代码有两个问题。首先,a和b被声明为字符串,不能分割字符串(我想?我从未测试过这一点,但我非常怀疑)
首先,java的整数变量是32位的,换句话说,它们不能存储超过9个字符。
所以int a已经无效了
然后,您可以选择将a解析为int,或者在修复int a的值后将其更改为整数
Ex用于解析
int aInt = Integer.parseInt(a);
int bInt = Integer.parseInt(b);
然后使用aInt和bInt进行计算。首先,你有两个变量,它们都是字符串,因此你不能将它们分开,你应该在编译应用程序“operator/not application to java.lang.String,java.lang.String”时看到这个错误。
我认为您的方法是将数字存储在一个数组中,然后将它们相互分割,这可能是一个合理的解决方案,但有两个注意事项:
由于字符串是一个字符数组,您不需要定义数组(您已经正确地定义了数组)
当你想将字符串的一部分除以另一部分时,你需要将这些部分转换成整数(这就像一个简单的数学,当你在纸上除以10/4时,你也要做同样的事情)
总之,我建议您签出BigInt和BigDecimal文档。它们肯定对您有用。另外,请考虑我提到的第一个解决方案。首先,未声明c
。
其次,字符串基本上是文本,“hello”等
第三,您的a
非常大,因此使用int
无法解决此问题,因此要解决此问题,请使用biginger
调试器,并且是免费的。使用它。您不能分割字符串。您应该研究biginger。您需要首先遵循教程。您不能分割字符串(单词)。如果可能的话,“foo”/“bar”
的结果应该是什么?关于使用使用java的BigDecimal或BigInteger类来存储您的数字也是一样的。我确实说过。“首先,java的整数变量是32位的。换句话说,它们不能存储超过9个字符。因此int a已经无效了。”您还说它是一个选项。