저는 여기에 간단한 곱셈에 잘못된 결과를주는 자바 프로그램의 메소드가 있는데, 무슨 일이 일어나고 있는지 잘 모르겠습니다. 어쩌면 확장해야 할 일식의 설정 일 수도 있습니다. 나는 전혀 몰라요.자바가 잘못된 결과를 내고 있습니다.
간단함 : 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;
}
}
}
경우 번호에서 오는? 또한, "funciton"이라는 이름을 지어서는 안됩니다. –
31 번째 힘까지 2는 어땠습니까 ?? –
"오버플로". http://en.wikipedia.org/wiki/Arithmetic_overflow –