자바(Java) 숫자를 나누기 했을때 소수점 이하로 출력하는 방법

자바(JAVA)

자바(Java) 숫자를 나누기 했을때 소수점 이하로 출력하는 방법

 

환경 : Eclipse Mars, JDK 7.0

 

int double 로 나누기 했을 때 결과값에 소수점 값이 안나오는 경우가 있죠. 이번 예제는 소수점까지 어떻게 구하는지에 대한 설명입니다.

 

보통 사람들이 5/100 을 하게 되면 0.05 가 나오는지 착각합니다. 리턴받는 변수로 double 을 하더라도 소수점 이하는 나오지 않습니다. Int long 형 변수는 아무리 나누기를 해도 소수점은 없애버리고 정수만 리턴합니다. 소수점이 있는 실수형 값을 받을려면 double 형 변수에 담아야 겠죠.

 

소수점을 잃어 버리는 경우는 다음과 같습니다. 결과값은 모두 소수점이 없죠. 세번째 경우도 int 로 캐스팅 했기 때문에 정수만 남았습니다.

 

// 정수만 리턴
iValue =  3 / 100;
System.out.println(iValue);

// 정수만 리턴
dValue =  3 / 100;
System.out.println(dValue);

// 정수만 리턴
iValue = (int) (3.0 / 100);
System.out.println(iValue);
// 출력값
0
0.0
33

 

소수점을 정상적으로 출력하기 위한 방법 입니다. 리턴받을 변수는 double 이어야 하며 어느 숫자이든 하나만 실수형이면 됩니다. 숫자 뒤에 .0 이라고 붙이면 되겠죠. 그리고 두 숫자중에서 하나만 double 로 캐스팅 하셔도 됩니다.

 

// 옳은 결과
dValue = 3.0 / 100.0;
System.out.println(dValue);

// 옳은 결과
dValue = 3 / 100.0;
System.out.println(dValue);

// 옳은 결과
dValue =  100 / (double) 3;
System.out.println(dValue);
// 출력값
0.03
0.03
33.333333333333336

 

 

자바(Java) 숫자를 나누기 했을때 소수점 이하로 출력하는 방법

 

Posted by 녹두장군

댓글을 달아 주세요