[javascript] 소수점 이하 두 자리를 항상 표시하는 형식 번호

해당하는 경우 항상 반올림하여 소수점 이하 2 자리를 표시하도록 숫자 형식을 지정하고 싶습니다.

예 :

number     display
------     -------
1          1.00
1.341      1.34
1.345      1.35

나는 이것을 사용했다 :

parseFloat(num).toFixed(2);

그러나이 아닌으로 표시 1됩니다 .11.00



답변

(Math.round(num * 100) / 100).toFixed(2);

라이브 데모

이 점에 유의 반올림 입력이 때문에, 2 진수 곳으로 1.346돌아갑니다 1.35.


답변

Number(1).toFixed(2);         // 1.00
Number(1.341).toFixed(2);     // 1.34
Number(1.345).toFixed(2);     // 1.34 NOTE: See andy's comment below.
Number(1.3450001).toFixed(2); // 1.35


답변

이 답변 은 실패합니다 value = 1.005.

더 나은 해결책으로 지수 표기법으로 표시된 숫자를 사용하여 반올림 문제를 피할 수 있습니다.

Number(Math.round(1.005+'e2')+'e-2'); // 1.01

@Kon이 제안한 깔끔한 코드와 원저자 :

Number(Math.round(parseFloat(value + 'e' + decimalPlaces)) + 'e-' + decimalPlaces)

toFixed()소수점을 유지하기 위해 끝에 추가 할 수 있습니다 ( 예 :: 1.00문자열로 반환 됨).

Number(Math.round(parseFloat(value + 'e' + decimalPlaces)) + 'e-' + decimalPlaces).toFixed(decimalPlaces)

크레딧 : 반올림 십진수 자바 스크립트


답변

var num = new Number(14.12);
console.log(num.toPrecision(2));//outputs 14
console.log(num.toPrecision(3));//outputs 14.1
console.log(num.toPrecision(4));//outputs 14.12
console.log(num.toPrecision(5));//outputs 14.120


답변

가장 정확한 반올림을 위해 다음 함수를 작성하십시오.

function round(value, decimals) {
    return Number(Math.round(value +'e'+ decimals) +'e-'+ decimals).toFixed(decimals);
}

소수점 이하 두 자리로 반올림하는 데 사용하십시오.

console.log("seeked to " + round(1.005, 2));
> 1.01

Razu , 기사 및 MDN의 Math.round 참조 덕분 입니다.


답변

최신 브라우저의 경우 다음을 사용하십시오 toLocaleString.

var num = 1.345;
num.toLocaleString(undefined, { maximumFractionDigits: 2, minimumFractionDigits: 2 });

소수 구분 기호 를 제어하려면 로케일 태그를 첫 번째 매개 변수로 지정하십시오 . 도트의 경우 예를 들어 영어 미국 로캘을 사용하십시오.

num.toLocaleString("en-US", { maximumFractionDigits: 2, minimumFractionDigits: 2 });

이것은 다음을 제공합니다.

1.35

유럽의 대부분의 국가는 쉼표를 소수점 구분 기호로 사용하므로 스웨덴어 / 스웨덴 로케일을 사용하는 경우 :

num.toLocaleString("sv-SE", { maximumFractionDigits: 2, minimumFractionDigits: 2 });

그것은 줄 것이다 :

1,35


답변

가장 간단한 답변 :

var num = 1.2353453;
num.toFixed(2); // 1.24

예 : http://jsfiddle.net/E2XU7/