본문 바로가기

국비교육/국비교육 복습

Day02_data_Test09 : 나누기 연산의 몫과 나머지 + 소수점 표기 방법

(Q) KH PC방에서는 1시간에 1200원의 요금을 받고 있습니다.

만약 요금이 10원단위로 나올 경우 해당 요금은 받지 않습니다

(ex) 1250원이면 1200원만 받습니다

12시 40분부터 16시 10분까지 이용한 고객의 요금을 출력

 

package day02;

import java.lang.*;

public class Day02_data_Test09 {

	public static void main(String[] args) {
    
    		int pricePerHour = 1200;
    
    		int inHour = 12;
    		int inMinute = 40;
    
    		int outHour = 16;
    		int outMinute = 10;
    
    		int inTime = inHour * 60 + inMinute;
    		int outTime = outHour * 60 + outMinute;
    
    		int totalTime = outTime - inTime;
    
    		int totalPrice = pricePerHour * totalTime / 60;
    
    		int netPrice = totalPrice / 100 * 100;
    
    		System.out.println(netPrice);
    
    	}

}

 

1) 10원 단위 제거

- 1시간당 1200원이므로 1분당 20원임을 알 수 있다

- 5분당 100원이 되므로 totalTime을 60으로 나눈 나머지가 5분 이내의 경우에 대해서 10원 단위의 금액이 발생할 수 있다

- 산술 연산자 *, /와 10의 거듭제곱을 사용하면 특정 단위 이하를 버릴 수 있다

ex) 1024에서 10의 자리 이하를 버리려고 한다면

      int에 1024를 저장하여 100으로 나누면 10.24의 0.24 부분이 버림되며 이를 다시 100으로 곱하면 1000이 된다

- 이를 이용하여 총 요금의 10원 단위의 금액을 버릴 수 있다