이번에는 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('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("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을 준다.