NULL

return과 소수점 다루기 (parseFloat, parseInt) 본문

Front-end/Vanilla JS

return과 소수점 다루기 (parseFloat, parseInt)

1924 2022. 4. 14. 10:22

return

함수를 반환해준다.

그리고 함수 종료의 뜻도 있다.

리턴을 만나면 함수가 종료되서 리턴 아래 코드들은 생략된다.

 

function 함수(){
  return 123
  console.log(456);
}

console.log(함수());

123을 출력해주고 함수가 종료되서 456은 출력되지 않는다.

 

 

 

변환기 역할

함수는 숫자를 집어넣으면 규칙에 따라 다른 숫자가 나오는 변환기역할을 한다. 

변환기 만들 때 return 문법이 유용하게 사용된다.

 

 

 

예시 - 부가세 계산기

console.log(60000 * 0.1);
console.log(50000 * 0.1);
console.log(80000 * 0.1);

예를 들어 6만원, 5만원, 8만원짜리 상품 3개의 부가세를 구해서 콘솔창에 출력하려면

이렇게 필요할 때 마다 0.1을 곱해줘도 되겠지만

 

함수는 숫자를 넣으면 다른 숫자가 나오는 변환기 역할이므로

 

 

function vat(a){
  return a * 0.1
}

console.log(vat(60000));
console.log(vat(50000));
console.log(vat(80000));

함수로 구현하는게 좋다.
이렇게 부가세 구하고 싶을 때 마다 vat()안에 숫자만 넣으면 편리해진다.

 

 

 

소수연산 시 주의사항

console.log(1.1 + 0.3)

해당 코드는 1.4가 출력 될 것 같지만
1.40000000001 이 출력된다.

 

 

 

그 이유는 컴퓨터는 2진법으로 설계되어있다.
그래서 숫자도 2진법 숫자만 알아들을 수 있다. 


컴퓨터에게 10 + 20 연산하라고 하면
전부 2진법으로 바꿔서 1010 + 10100 으로 연산하고 다시 10진법으로 바꿔서 보여준다. 

 

 

무한한 숫자를 저장할 수 있는 저장장치는 없기 때문에
컴퓨터는 적절히 끊고 반올림해서 저장한다.

예시) 1.00011001100110011001101
그래서 소수점 연산은 아주 작은 오차가 발생한다.

 

 

해결법


1. 덧셈하기 전 10곱하고 덧셈 후 10으로 나눈다.
2. 외부라이브러리 사용
3. 오차는 무시할 정도로 작으니 반올림한다.


세세하게 정확한 계산이 필요한게 아니라면 대부분 그냥 반올림을 사용하면 된다.

 

 

 

소수점 반올림하는 법

console.log( (1.1 + 0.3).toFixed(1) );

숫자.toFixed(몇자리) 이것을 사용하면 된다.
모든 숫자 뒤에 붙일 수 있다.

주의점은 이렇게 하고 나면 '문자'로 변환한다.


'123'과 123은 다른 타입이라 주의해서 써야한다. 

 

 

 

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

parseFloat('123')
parseInt('123')

해당코드를 사용하면 123을 그 자리에 남겨줍니다.


문자처럼생긴 숫자를 숫자로 변경해주는 유용한함수이다.


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

 
이 것을 사용하는 이유는
JS는 덧셈기호가 특이한 역할을 하는데

1 + 1 = 2 이지만
1 + '1' = '11' 이다.

+ 기호 사용 시 둘중 하나만 문자가 있어도 문자덧셈을 해줘서 이고,
문자덧셈은 두개의 문자를 이어붙여준다.

Comments