[javascript] 소수점 이하 2 자리까지 부동 소수점을 표시하는 JavaScript

소수점 이하 두 자리까지 숫자를 표시하고 싶었습니다.

toPrecision(2)JavaScript에서 사용할 수 있다고 생각했습니다 .

그러나 숫자가 0.05인 경우을 얻습니다 0.0500. 차라리 그대로 유지하고 싶습니다.

JSbin에서 참조하십시오 .

가장 좋은 방법은 무엇입니까?

몇 가지 솔루션을 코딩하는 것을 생각할 수 있지만 이와 같은 것이 내장되어 있다고 생각합니까?



답변

float_num.toFixed(2);

참고 :toFixed() 필요한 경우 지정된 길이를 충족하기 위해 반올림하거나 0으로 채 웁니다.


답변

toFixed함수로 할 수는 있지만 IE에서는 버그가 있습니다. 신뢰할 수있는 솔루션을 원하면 여기 에서 내 대답을 보십시오 .


답변

toFixed대신 사용해보십시오 toPrecision.


답변

내가이 질문에 어떻게 도달했는지 모르지만 이것이 요청 된 지 몇 년이 지난 후에도 빠르고 간단한 방법을 추가하고 싶습니다.

var num = response_from_a_function_or_something();

var fixedNum = parseFloat(num).toFixed( 2 );

답변

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

라운드 (1.005, 2); // 1.01을 반환

라운드 (1.004, 2); // 1.00 대신 1을 반환

이에 대한 답은 다음 링크입니다 : http://www.jacklmoore.com/notes/rounding-in-javascript/


답변

number.parseFloat(2) 작동하지만 문자열을 반환합니다.

숫자 유형으로 유지하려면 다음을 사용할 수 있습니다.

Math.round(number * 100) / 100


답변

당신은 혼합을 시도 할 수 Number()toFixed().

대상 번호를 X 자릿수가있는 멋진 문자열로 변환 한 다음 형식화 된 문자열을 숫자로 변환하십시오.

Number( (myVar).toFixed(2) )


아래 예를 참조하십시오.

var myNumber = 5.01;
var multiplier = 5;
$('#actionButton').on('click', function() {
  $('#message').text( myNumber * multiplier );
});

$('#actionButton2').on('click', function() {
  $('#message').text( Number( (myNumber * multiplier).toFixed(2) ) );
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<button id="actionButton">Weird numbers</button>
<button id="actionButton2">Nice numbers</button>

<div id="message"></div>