2013-09-21 1 views
-4

나는 그것이해야한다고 생각하는 방식으로 작동하지 않는 간단한 자바 프로그램을 가지고있다.자바 언어로 오류 나누기

public class Divisor 
{ 
    public static void main(String[] args) 
    { 
     int answer = 5/2; 
     System.out.println(answer); 
    } 
} 

왜 이렇게 인쇄되지 않습니까?

double answer = 5.0/2.0; 

정수 나누기는 항상 :

답변

3

2분의 5 정수 나누기 (당신도 정수 변수에 저장하고) 당신이 2.5 되길 원한다면, 당신은 포인트 부문 부동 사용할 필요가있다 가장 가까운 정수로 반올림 한 정상적인 수학적 구분과 같을 것입니다.

+0

모든 피연산자를 두 번 사용할 필요가 없습니다. 그 중 하나만 괜찮습니다 ('5.0/2 = 5/2.0 = 2.5') – BackSlash

+0

@BackSlash 그래서? 당신이 말하는 것은 똑같은 것을 * 컴파일하는 것입니다. 유일한 차이점은 적절한 부동 소수점 나누기를 수행 할 수 있도록 컴파일러에서 정수를 부동 소수점 숫자로 변환하도록 만드는 것입니다. 너는 그저 게으르다. – Thor84no

2

자바는 정수를 나눈 정수를이라고합니다. 2.5은 정수로 표시 할 수 없으므로 결과는 2.0으로 채워집니다. 또한 결과를 정수로 저장합니다.

부동 소수점 나누기가 필요하면 피연산자 중 하나를 double 형으로 캐스팅하고 answer 유형을 double으로 변경하십시오. 여기서 리터럴 값을 사용하므로 55.으로 변경하면이 리터럴 값은 double이됩니다. 결국

는 당신을 위해 다음과 같은 작업을해야합니다 :

double answer = 5./2; 

참고, 당신도 점 기호 다음 제로 기호가 필요하지 않습니다!