[JS] 소수점 반올림 Feat. Number vs parseFloat vs parseInt

Calvin Park·2022년 11월 10일

이번에는 toFixed()를 사용해서 소수점을 필요한만큼 남기고 반올림하는 Method를 알아보겠습니다.

toFixed() method는 string으로 숫자 값을 받았으면 parseFloat를 사용해서 string -> number로 한다음에 .toFixed()를 사용하면 된다.

const num = "1.129124";

console.log(parseFloat(num).toFixed(2));
//output 1.13
console.log(parseFloat(num).toFixed(3));
//output 1.129

toFixed()를 사용할때는 number로 변환하여 사용하자.

parseFloat() vs Number() vs parseInt() 의 차이점

parseFloat('3'); // => 3
Number('3'); // => 3
parseFloat('1.501'); // => 1.501
Number('1.501'); // => 1.501
parseFloat('1e10'); // => 10000000000
Number('1e10'); // => 10000000000

사용 용도는 비슷해보인다. 하지만 여기서 tricky한게 있다

parseFloat('1x'); // => 1
Number('1x'); // => NaN

parseFloat()은 string과 number가 같이 있어도 숫자만 return을 하는것을 볼 수 있다. 하지만 Number는 string전체를 보기때문에 바로 NaN(Not a Number)가 된다.

parseFloat('0x10'); // => 0
Number('0x10'); // => 16

재미있는것은 Number는 16진수를 이해한다는 것이고 parseFloat은 모른다는 것이다.
그리고 더더 재미있는것.

parseFloat(''); // => NaN
Number(''); // => 0
parseFloat(' \r\n\t'); // => NaN
Number(' \r\n\t'); // => 0

Number(" ") 공백이 들어가면 0을 return 해준다.
ㅋㅋㅋㅋㅋ 뭐야...

자 그러면 Number 와 parseFloat을 알아봤다.

그러면 parseInt()는 무엇일까?

parseInt("10");

parseInt("10.00") 		// => 10
parseInt("10.33") 		// => 10
parseInt("34 45 66")  	// => 34
parseInt("   60   ") 	// => 60
parseInt("40 years")  	// => 40
parseInt("He was 40"); 	// => NaN

parseInt도 얼핏 보면 parseFloat과 비슷하다고 생각을 하지만
단점이 있다. 첫번째 string만 integer로 return을 한다는 것이다.
물론 string을 integer로 return을 하지만
parseInt("He was 40")를 보면 string의 첫번째가 H라는 알파벳이라서 NaN을 준다.

profile
Personal Velog Note

0개의 댓글