小数点以下2桁までの浮動小数点数を表示するJavaScript


316

数値を小数点第2位まで表示したかった。

toPrecision(2)JavaScriptで使えると思いました。

しかし、数がなら0.05、私は得る0.0500。変わらないほうがいいです。

JSbinでご覧ください。

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

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

回答:


560
float_num.toFixed(2);

注:toFixed()指定された長さに合わせる必要がある場合は、ゼロを丸めるか、ゼロで埋めます。


61
しかし、浮動小数点数ではなく文字列を返します!
Anwar

38
質問の作成者はそれを「表示」したいので、文字列は完璧です
Christophe Marois

7
また、常にparseFloat(float_num.toFixed(2))を使用して、小数点以下2桁のみを保持しながら、文字列を浮動小数点に戻すことができます。
Hankrecords

3
@anwarでは、フロートを確実に丸めることはできません(おそらく、フロートを丸めることができます)-0.0500または0.0500000000001のような値が得られます。浮動小数点
gui.deを

2
@Hankrecordsあなたが言ったことは真実ではありません。「43.01」があり、parseFloatの場合、43.01が返されますが、「43.10」の場合は、43.1:Dが返されます。
Lucian Tarna、



14

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

var num = response_from_a_function_or_something();

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

1
なぜparseFloat()そこに?数値が文字列からのものである場合にのみ使用してください。
アレックス、2016年

3
要素からjqueryで「data-」属性値を取得する場合、toFixedのみを使用するとエラーが発生する場合があります。parseFloatはそれを修正します。
パノラマ2016年

2
それが文字列から来た場合、それは私が上記で意味したことです。しかし、常にそれを使用することは悪いアドバイスです。
アレックスアレックス


8

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

数値型として保持したい場合は、次のように使用できます。

Math.round(number * 100) / 100


4

混ぜてみ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>


素敵なリファレンスをありがとう。
アルマンH

1

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

そしてここに構文があります

numObj.toFixed([digits])

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

numObj.toFixed([digits]) * 1

またTypeError、のような例外をスローすることもありますRangeError

これは、ブラウザの完全な詳細と互換性です。



-1

この機能を作りました。正常に動作しますが、文字列を返します。

function show_float_val(val,upto = 2){
  var val = parseFloat(val);
  return val.toFixed(upto);
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.