var answer = 0;
if(price >= 500000){
answer = price - (price * 0.2);
}else if(price >= 300000 ){
answer = price - (price * 0.1);
}else if(price >= 100000 ){
answer = price - (price * 0.05);
}else{
answer = price;
}
return Math.floor(answer);
}
여기서! 내가 틀렸던 부분
1. else
문에서 십만 원 이하이면 할인이 적용되지 않는 구문을 적어주지 않다. (answer=price)
2. Math.floor
로 리턴을 해줘야 된다. 왜냐 예제에서는 소수점으로 떨어지지 않지만 다른 예제에서는 소수점으로 떨어질 수도 있기 때문에 소수점을 제거하고 리턴을 해줘야 된다.
다른 팀원분이 알려준 방법은 있지만 아직 이해가 되지 않아 사 적지 않겠다!
하지만 거기서 Math.trunc()
라는 걸 처음 알게 되었다.
Math.trunc()
와 Math.floor()
차이란?Math.trunc()
는 소수점 이하는 다 버리기 때문에 숫자가 -23.3 음수인 경우에 -23을 return한다.
Math.floor()
는 -23.3인 경우에 내림을 하기 때문에 -24f을 return 한다.
Math.trunc() : 소수점 이하는 버린다.
Math.round() : 반올림
Math.floor() : 내림 floor => 바닥까지 내린다고 생각 // 3.5 -> 3 // -3.5 -> -4
Math.ceil() : 올림 ceiling => 천장까지 올린다고 생각 // 3.5 -> 4 // -3.5 -> -3