728x90
거스름돈을 구할 때는 몫을 구하고, 나머지를 구하는 연산이 필요한데,
자바스크립트에서 몫만 출력하는 방법은 Math의 내장 함수를 쓰는 방법이 제일 간단하더라고요..
몫 구하기
1. Math.floor() : 소수를 내림
(+ 올림은 Math.ceil()입니다.)
2. Math.trunc() : 소수를 버림
저는 배열을 사용하여 반복문으로 코드를 작성했더니, 코드가 굉장히 짧졌습니다!!
필요한 변수
1. 나머지 값을 계산할 remain
2. 돈의 단위를 넣은 배열 arr
function giveRemain(payment, cost) {
//거슬러 줘야 할 금액
remain = payment - cost;
arr = [50000, 10000, 5000, 1000, 500, 100];
for (i of arr){
console.log(`${i}원 : ${Math.floor(remain / i)}개`);
remain %= i;
//console.log(`남은 돈 : ${remain}원`);
}
}
일단 (지불한 돈) - (지불할 돈)을 remain 변수에 넣어줍니다.
그리고 돈의 단위를 넣은 arr 배열로 for .. of 반복문을 돌립니다.
remain/i의 몫만 추출하기 위해 내림 함수인 Math.floor()를 사용하여 출력했고
remain은 나머지 값만 넣기 위해 %를 사용했습니다.
예시>
giveRemain(100000, 3700);
출력>
50000원 : 1개
10000원 : 4개
5000원 : 1개
1000원 : 1개
500원 : 0개
100원 : 3개
이해가 안가실까봐 주석을 풀어서 남은 돈을 출력하는 코드도 넣어봤습니다.
출력>
50000원 : 1개
남은 돈 : 46300원
10000원 : 4개
남은 돈 : 6300원
5000원 : 1개
남은 돈 : 1300원
1000원 : 1개
남은 돈 : 300원
500원 : 0개
남은 돈 : 300원
100원 : 3개
남은 돈 : 0원
50원과 10원까지 응용해서 해보면 좋을 것 같습니다!!
아니면 지불한 돈이 지불할 금액보다 작을 때, 돈을 더 줘야 한다는 문구를 추가해도 좋을 것 같아요!!