我在这里的一个java程序中有一个方法,在一个简单的乘法上给出错误的结果,我不知道发生了什么。也许这是eclipse中的一个设置,我需要扩展 - 我只是不知道。Java给出了错误的结果
简单为:987,654,321 * 10.显然应该是9,876,543,210。相反,我得到了1,286,608,618。世界上有什么?该方法只是读取字符并将标记号码(不超过10位数字)添加到列表中。其他一切正常,但它出于某种原因讨厌这个数字。
public void number(char dig, boolean lc){
int num = Character.getNumericValue(dig);
if(number == 0){
number = num;
}
else{
number = number*10 + num;
}
if(lc){
if(String.valueOf(number).trim().length() <= intLength){
tokenList.add(number);
number = 0;
return;
}
else{
System.out.println("Error in number entry. Invalid or exceeded length: " + number);
number = 0;
return;
}
}
}
凡号来自哪里?此外,你应该避免命名该功能“数字” –
什么是2提高到31功率? –
“溢出”。 http://en.wikipedia.org/wiki/Arithmetic_overflow –