web-dev-qa-db-ja.com

小数点以下2桁のfloatを表示するJavaScript

小数点以下2桁まで表示したいです。

私はJavaScriptでtoPrecision(2)を使えると思った。

しかし、番号が0.05であれば、0.0500となります。私はそれが同じままでいたいと思います。

JSbin でそれを参照してください。

これを行うための最良の方法は何ですか?

私はいくつかの解決策をコーディングすることを考えることができますが、私はこのようなものが組み込まれていると思いますか(私は願っています)?

262
alex
float_num.toFixed(2);

注:toFixed() は、指定された長さを満たすために必要に応じて丸めまたはゼロで埋めます。

461
Jason McCreary

あなたはtoFixed関数でそれをすることができます、しかしそれはIEで バグがあります 。あなたが信頼できる解決策を望むならば、ここで私の答え を見てください

47
Elias Zamaria

toFixedの代わりに toPrecision を試してください。

17
casablanca

どうやってこの質問にたどり着いたのかはわかりませんが、質問されてから何年も経っても、私が従う簡単で簡単な方法を追加したいと思います。

var num = response_from_a_function_or_something();

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

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/

4
Huy Nguyen

number.parseFloat(2)は動作しますが、文字列を返します。

数値タイプとして保存したい場合は、次のようにします。

Math.round(number * 100) / 100

3
rnmalone

toFixed()メソッドは、固定小数点表記を使用して数値をフォーマットします。

これが構文です

numObj.toFixed([digits])

digits引数はオプションで、デフォルトは0です。また、戻り型は数値ではなく文字列です。しかし、あなたはそれを使ってそれを数に変換することができます

numObj.toFixed([digits]) * 1

TypeErrorRangeErrorなどの例外もスローされる可能性があります。

これが ブラウザの詳細 と互換性です。

1
Sunil Garg

Number()toFixed()を混合してみてください。

ターゲット番号をX桁のNice文字列に変換してから、フォーマットされた文字列を数値に変換します。

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>
0
George-Paul B.

toFixed関数は、JavaScriptで浮動小数点数を小数点以下2桁に制限するために使用されます

two_decimal_num = parseFloat(3.14159.toFixed(2));
console.log(two_decimal_num)
0
Asad Manzoor

私はこの機能を作りました。それはうまく働きますが文字列を返します。

function show_float_val(val,upto = 2){
  var val = parseFloat(val);
  return val.toFixed(upto);
}
0