결제 금액 캐시백 계산 프로그램

- 수행 목적 : Scanner의 입력함수와 조건문을 통한 캐시백 계산 로직 작성

- 간략 소개 : 직불카드로 결제를 하게되면 이에 대한 캐시백을 제공해 줍니다. 주어진 캐시백 금액을 계산하는 프로그램을 작성해 보세요.

※ 필수 준수사항

1. 주어진 캐시백 적립 조건에 맞게 캐시백 계산

2. 결제 금액을 입력하면, 이에 대한 캐시백 계산 후 결과 출력

 

[캐시백 계산 조건]

- 결제 금액의 10%를 적립한다.

- 캐시백 포인트 단위는 백원 단위이다.

- 한 건의 캐시백 포인트는 최대 300원을 넘을 수 없습니다.

 


Math.round() 함수

: 입력 값을 반올림한 수와 가장 가까운 정수 값을 반환

public class test {
    public static void main(String[] args) {
        double input = 9.4365;
        int a = (int) Math.round(input);
        // 라운드는 소수점 첫째자리 기준으로 모두 올리거나 내리는 메서드이다.
        System.out.println(a);

        // Math.round() : 소수 첫째자리 반올림
        // 소수점 자리 다양하게 표현 가능
        // 소수점 둘째자리 까지(반올림)
        double b = Math.round(input * 100) / 100.0;
        System.out.println(b);
        // 소수점 셋째자리 까지
        double c = Math.round(input * 1000) / 1000.0;
        System.out.println(c);
    }
}

실행 결과


원 단위 절사

: 원 단위의 경우 10, 십원 단위는 100, 백원 단위는 1000, ...을 이용해 절사가 가능하다.

 

작성 코드

// 결제 금액 캐시백 계산 프로그램


import java.util.Scanner;

public class Cash {
    public static void main(String[] args) {
        System.out.println("[캐시백 계산]");

        Scanner sc = new Scanner(System.in); // Scanner 객체 생성
        System.out.print("결제 금액을 입력해 주세요.(금액): ");
        int input = sc.nextInt();
        int cashback = (int)(input * 0.1); // 결제 금액의 10% 적립
        int result = Math.round(cashback) / 100 * 100;

        if(cashback<=300){
            System.out.printf("결제 금액은 %d원 이고, 캐시백은 %d원 입니다.", input, result);
        } else if(cashback>300){
            System.out.println("한 건의 캐시백 포인트는 최대 300원을 넘을 수 없습니다.");
            System.out.printf("결제 금액은 %d원 이고, 캐시백은 300원 입니다.", input);
        }


    }
}

https://gist.github.com/coha96/7dd97c298c95cee0104752879429ef24