小数点以下2桁まで表示したいです。
私はJavaScriptでtoPrecision(2)
を使えると思った。
しかし、番号が0.05
であれば、0.0500
となります。私はそれが同じままでいたいと思います。
JSbin でそれを参照してください。
これを行うための最良の方法は何ですか?
私はいくつかの解決策をコーディングすることを考えることができますが、私はこのようなものが組み込まれていると思いますか(私は願っています)?
float_num.toFixed(2);
注:toFixed()
は、指定された長さを満たすために必要に応じて丸めまたはゼロで埋めます。
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
toFixed()
メソッドは、固定小数点表記を使用して数値をフォーマットします。
これが構文です
numObj.toFixed([digits])
digits引数はオプションで、デフォルトは0です。また、戻り型は数値ではなく文字列です。しかし、あなたはそれを使ってそれを数に変換することができます
numObj.toFixed([digits]) * 1
TypeError
、RangeError
などの例外もスローされる可能性があります。
これが ブラウザの詳細 と互換性です。
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>
toFixed関数は、JavaScriptで浮動小数点数を小数点以下2桁に制限するために使用されます
two_decimal_num = parseFloat(3.14159.toFixed(2));
console.log(two_decimal_num)
私はこの機能を作りました。それはうまく働きますが文字列を返します。
function show_float_val(val,upto = 2){
var val = parseFloat(val);
return val.toFixed(upto);
}