我需要将前导零添加到数组中以供数学使用。 具体来说,我正在做一些添加两个大数字的东西。数字存储为int数组,其中数组的每个元素都是5位数。一个例子是 53498 93784 45891 45982 48933 58947 我需要在此添加另一个,比方说, 23584 42389 32479 34289 39281 48237 要添加它们,我将取两者的最后5位数字并添加它们58947 + 48237 这给出107184.然后我将进位值设置为1并减去100,000。
这是问题所在: 它将int设置为7184,然后总和表示... 882157184而不是8821507184,产生(非常)不正确的总和。 那么如何让我的Sum int数组说88215 07184? 如果这不可能,请列出获得相同结果的另一种方法,可能是字符串而不是int数组? 如果可能的话,请尝试找到一种方法,使其具有带有int值的前导0。
答案 0 :(得分:15)
您是否考虑过使用Java的BigInteger类?
e.g。
BigInteger quiteBig = new BigInteger("534989378445891459824893358947");
答案 1 :(得分:4)
值中没有前导零(除非你当然是在谈论八进制文字)。在内部,int
是32位,就是这样。
您可能需要格式化。要解决输出,您可以尝试String.format("%05d", x);
,有关详情,请参阅javadoc
答案 2 :(得分:0)
你可以从这样的事情开始:
class FiveDigitInteger {
private static final DecimalFormat format = new DecimalFormat("00000");
final int i;
public FiveDigitInteger ( int i ) {
this.i = i;
}
public int getInteger () {
return i;
}
public String toString () {
return format.format(i);
}
}
并添加各种math
方法,例如:
public FiveDigitInteger add ( int j ) {
return new FiveDigitInteger ( i + j );
}
等