우당탕탕 개발일기
정수일 땐 정수만, 소수점일때는 소수점자리 표현하는 방법 본문
728x90
종종 요청사항 중에 소수점 n번째자리까지 표현해주세요~하는게 있다.
단순하게 toFixed(n)를 사용하면 쉽게 해결할 수 있지만, 문제는 50, 15같은 정수형태의 숫자들도 50.00, 15.00으로 나온다는것이었다.
단순하게 조건문으로 해결할 생각만 하고 있었는데 parseFloat을 이용하면 손쉽게 구현할 수 있다고 한다.
parseFloat(NUMBER.toFixed(n))
NUMBER 자리에 원하는 숫자나 숫자가 담긴 변수를 넣으면 10,20같은 정수일때는 정수만, 1.456같이 소수점일 때는 n번째 자리수까지 표현된다.
NUMBER.toFixed(n)을 하면, n번째 이하의 자릿수에서 반올림하고 문자열 형태로 반환한다.
그리고 parseFloat()은 문자열을 숫자로 변환하는 함수인데, 이 때 자바스크립트는 문자열에서 숫자로 변환시 불필요한 0을 삭제하게 되므로 자연스럽게 불필요한 0이 사라지고 정수만 표현된다.
cf. JavaScript가 숫자를 표현하는 규칙
Leading Zeros (선행 0): 문자열의 맨 앞에 있는 0은 숫자의 시작을 나타내는데 사용됩니다. 따라서 이러한 선행 0은 무시됩니다.예를 들어, "0123"과 같은 문자열은 숫자 123으로 해석됩니다. 선행 0은 123을 나타내는 데 아무런 영향을 미치지 않습니다.
Trailing Zeros (마지막 0): 숫자의 소수 부분에서 마지막에 있는 0은 종종 생략됩니다.예를 들어, "5.00"과 같은 문자열은 숫자 5로 해석됩니다. 마지막의 0들은 숫자의 정확도에 아무런 영향을 미치지 않으므로 제거됩니다.
https://hi098123.tistory.com/184
728x90
'What I Learned > JavsScript' 카테고리의 다른 글
모던 자바스크립트 11. 원시 값과 객체의 비교 (0) | 2024.04.19 |
---|---|
모던 자바스크립트 10. 객체 리터럴 (0) | 2024.04.18 |
링크 복사 기능 구현하는 Clipboard API (0) | 2023.04.11 |
[JS] 중첩 배열 한 배열로 합치고 싶을 땐 Array.flat() (0) | 2023.03.02 |
[JS] event.preventDefault() 와 event.stopPropagation() (0) | 2023.02.02 |