티스토리 뷰

int는 정수를 저장할 때 사용되기 때문에 소수점이 있는 실수형을 int로 변환하면 소수점 아래의 값을 잃기 때문에 이런 에러가 난다.

 

ex) 21.75를 int로 변환한다고 하면 0.75부분을 잃기 때문에 자바에서는 lossy이기에 이를 허용하지 않는다.

 

-해결방법

형변환을 하자!

요런 식으로

public class Main {
    public static void main(String[] args) {
        int price = 120000;
        double finalPrice = 0;

        if (price < 100000) {
            finalPrice = price;
        } else if (price < 300000) {
            finalPrice = (int) (price * 0.95);
        } else if (price < 500000) {
            finalPrice = (int) (price * 0.9);
        } else {
            finalPrice = (int) (price * 0.8);
        }
        System.out.println(finalPrice);
    }
}

 

댓글