我是Java编程的新手,我的代码不会工作。有什么提示吗?

时间:2014-07-13 11:45:29

标签: java variables newline biginteger

帮助我开始编程 我想将一个大数字(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)

    }

我自己创造了这个问题,我想要这个工作,但它不会。 有人可以给我一些建议吗?

5 个答案:

答案 0 :(得分:4)

String对象只是文本。你不能用另一个文本划分文本 - 这是一个没有意义的操作。

如果int不足够大,您可以使用long这是一个64位长的整数,最多可达9223372036854775808

另一个选择是使用类型为floatdouble的浮点数学运算。它们代表一个带有指数的数字,它给出了一个巨大的范围。但是,浮点值越大越不准确,因此您可能会出现意外的不准确性(sometimes even for small values)。

如果您需要对最后一位数字精确的大数字和算术,您应该使用类BigIntegerBigDecimal(取决于您是否需要小数位)。这些类允许您执行具有任意大小数量的算术。 缺点是具有这些类的对象的算术比使用本机数据类型慢得多。

答案 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。字符串”。
我认为你的方法是将数字存储在一个数组中,然后将它们相互划分,这可能是一个合理的解决方案,但有两个注释:

  1. 因为String是一个字符数组,所以你不需要定义一个数组(你已经正确地完成了它)。
  2. 当你想将那部分字符串与另一部分分开时,你需要将这些部分转换为整数(这就像一个简单的数学。当你在纸上划分10/4时,你会做同样的事情)。
  3. 总之,我建议您查看BigInt和BigDecimal文档。他们绝对适合你。另外,想想我提到的第一个解决方案。

答案 3 :(得分:0)

首先,未声明c 其次,字符串基本上是文本,&#34;你好&#34;等
第三,您的a非常大,因此使用int无法正常工作,因此为了解决此问题,请使用BigInteger

答案 4 :(得分:-2)

您还没有声明变量c您刚刚声明如果您将c = a / b声明为double而不是{{1}},则{{1}} a / b会更好一个字符串,因为你不能分割字符串。