私はこれを行う方法がわかりませんか?私はコンマ番号を追加しています、結果はもちろんコンマの後の桁が多すぎる数字です。誰でも?
EDIT 2:
次のようなNumber
オブジェクトのtoFixed
メソッドを使用します。
var num = Number(0.005) // The Number() only visualizes the type and is not needed
var roundedString = num.toFixed(2);
var rounded = Number(roudedString); // toFixed() returns a string (often suitable for printing already)
42.0054321を42.01に丸めます
0.005から0.01に丸めます
-0.005から-0.01に丸めます(したがって、.5境界での丸めでは絶対値が増加します)
PDATE: 2010年に最初に回答が書かれた時点では、ベローズ関数toFixed()がわずかに異なる動作をしていました。 toFixed()は現在、ある程度の丸めを行っているようですが、厳密な数学的な方法ではありません。だから注意してください。テストを行う...数学者が期待するように、以下に説明する方法は丸めをうまく行います。
toFixed()
-メソッドは、指定された小数を保持しながら、数値を文字列に変換します。実際に数値を切り上げるのではなく、数値を切り捨てます。Math.round(n)
-数値を最も近い整数に丸めます。したがって、ターニング:0.5-> 1; 0.05-> 0
したがって、数値0.55555を小数第2位までのみ丸める場合は、あなたは次のことができます(これはステップバイステップの概念です):
0.55555 * 100
= 55.555Math.Round(55.555)
-> 56.00056.000 / 100
= 0.56000(0.56000).toFixed(2)
-> 0.56そして、これはコードです:
(Math.round(number * 100)/100).toFixed(2);
これは私のために働いた:
var new_number = float.toFixed(2);
例:
var my_float = 0.6666
my_float.toFixed(3) # => 0.667
以前の回答では、出力を再度数値として入力するのを忘れていました。あなたの好みに応じて、これを行うにはいくつかの方法があります。
+my_float.toFixed(2)
Number(my_float.toFixed(2))
parseFloat(my_float.toFixed(2))
これは実際にはCPUフレンドリーではありませんが、次のとおりです。
Math.round(number*100)/100
期待どおりに動作します。
ここには多くの有用な提案を含む多くの答えがありますが、それぞれはまだいくつかのステップを逃しています。
だから、小さな関数にラップされたcompleteソリューションです:
function roundToTwoDigitsAfterComma(floatNumber) {
return parseFloat((Math.round(floatNumber * 100) / 100).toFixed(2));
}
これがどのように機能するかに興味がある場合に備えて:
toFixed(2)
を使用してコンマの後に2桁を保持し、他の役に立たない部分をスローしますparseFloat()
関数が代わりに文字列を返すので、toFixed(2)
関数を使用して、フロートに変換します注:金額を扱うためにコンマの後に最後の2桁を保持し、財務計算を行う場合良いアイデアではない であり、代わりに整数値を使用した方がよいことに留意してください。
以下のコードを使用してください。
alert(+(Math.round(number + "e+2") + "e-2"));
私はこれを使用します:
function round(value, precision) {
if(precision == 0)
return Math.round(value);
exp = 1;
for(i=0;i<precision;i++)
exp *= 10;
return Math.round(value*exp)/exp;
}