return 과 소수점 연산

function의 기능

  1. 긴코드 축약

  2. 파라메터 추가

  3. return

function fun1() {
    console.log("1");
    return 123
    console.log("2");
}

var variable = fun1();
console.log(variable);
// 결과를 예상해보자.

이렇게 함수에 return을 하면 return 오른쪽의 값이 남는다.

return 은 함수종료의 뜻도 가지고 있다.

console.log("2"); 는 실행 안됨

수학에서의 함수는 입력값에 따라 출력값을 만들어내는 블랙박스

프로그래밍에서의 함수또한 마찬가지다.

예를 들어 부가세를 구하는 함수를 만들어보자.

function vat(price){
    return price * 0.1
  }
  console.log( vat(10000));
  console.log( vat(22222));

//출력값
1000
2222.2000000000003

첫번째는 정상적으로 1000이 출력됐지만 두번째는 값이 이상하다.

그 이유는 컴퓨터는 2진법으로 계산하기 때문에 일부 값들은 오류가 발생한다.

💎해결방법

  1. 반올림 (toFixed() 메서드)

  2. Math

  3. 외부라이브러리

function vat(price){
    return (price * 0.1).toFixed(2);
  }
  console.log( vat(10000));
  console.log( vat(22222));

//출력값
'1000.00'
'2222.20'

🔥 주의사항!

toFixed 를 사용하면 결과는 String (문자열)로 반환된다.

'숫자' > 숫자 로 변환하고 싶으면

parseInt('1000')

parseFloat('2222.20')

parseInt() 는 정수로

parseFloat() 는 실수로 변환해준다.

'2222.20' + 1 // 결과값은 2222.201
parseFloat('2222.20')+1  // 결과값은 2223.20

✨ 과제. 함수에 분과 초를 차례로 파라미터로 입력하면 ms 단위로 바꿔주는 함수를 만들어보자.

예시 console.log(msCalc(1,30)); 결과값은 90000

예시 console.log(msCalc(2,50)); 결과값은 170000

✨ 과제. 가격을 파라미터로 입력하면 15% 할인가를 반환해주는 함수를 만들어보자.

  function msCalc(min,sec){
    return min * 60 * 1000 + sec *1000
  }
  
  console.log( msCalc(2,50)); // 170000
  
  function salePrice(price){
    return price * 0.85
  }

  console.log(salePrice(19900)) //16915
  
  // 원단위 절사는 어떻게 할까? 
  
  function salePrice(price){
    return Math.floor( price * 0.85 /10) *10
  }

  console.log(salePrice(19900)) // 16910 

Last updated