728x90
반응형
질문 : JavaScript에서 정확히 두 개의 소수로 숫자 서식 지정
내 숫자를 소수점 이하 두 자리로 반올림하는 코드 줄이 있습니다. 그러나 나는 다음과 같은 숫자를 얻습니다 : 10.8, 2.4 등. 이것들은 소수점 두 자리에 대한 나의 생각이 아니므로 어떻게 다음을 개선 할 수 있습니까?
Math.round(price*Math.pow(10,2))/Math.pow(10,2);
10.80, 2.40 등과 같은 숫자를 원합니다. jQuery를 사용해도 괜찮습니다.
답변
고정 소수점 표기법을 사용하여 숫자를 포맷하려면 toFixed 메서드를 사용하면됩니다.
(10.8).toFixed(2); // "10.80"
var num = 2.4;
alert(num.toFixed(2)); // "2.40"
toFixed()
는 문자열을 반환합니다.
중요 : toFixed는 시간의 90 %를 반올림하지 않고 반올림 된 값을 반환하지만 대부분의 경우 작동하지 않습니다.
예를 들면 :
2.005.toFixed(2) === "2.00"
업데이트:
Intl.NumberFormat
생성자를 사용할 수 있습니다. ECMAScript 국제화 API 사양 (ECMA402)의 일부입니다. IE11을 포함하여 꽤 좋은 브라우저 지원을 제공 하며 Node.js에서 완벽하게 지원됩니다 .
const formatter = new Intl.NumberFormat('en-US', {
minimumFractionDigits: 2,
maximumFractionDigits: 2,
});
console.log(formatter.format(2.005)); // "2.01"
console.log(formatter.format(1.345)); // "1.35"
또는 내부적으로 Intl
API를 toLocaleString
메서드를 사용할 수 있습니다.
const format = (num, decimals) => num.toLocaleString('en-US', {
minimumFractionDigits: 2,
maximumFractionDigits: 2,
});
console.log(format(2.005)); // "2.01"
console.log(format(1.345)); // "1.35"
이 API는 천 단위 구분 기호, 통화 기호 등과 같은 다양한 형식 지정 옵션을 제공합니다.
출처 : https://stackoverflow.com/questions/1726630/formatting-a-number-with-exactly-two-decimals-in-javascript
728x90
반응형
'프로그래밍 언어 > HTML,CSS,JS' 카테고리의 다른 글
module.exports vs Node.js exports (0) | 2021.10.15 |
---|---|
AngularJS 템플릿의 if else 문 (0) | 2021.10.14 |
backbone.js의 목적 (0) | 2021.10.13 |
$ http.get 요청에 데이터를 전달하는 AngularJS (0) | 2021.10.12 |
jQuery에서 JSON으로 직렬화 (0) | 2021.10.12 |