13

私はこれを持っています:

i=4.568;
document.write(i.toFixed(2));

出力:

4.57

しかし、最後の数字を 7 に丸めたくないのですが、どうすればよいですか?

4

3 に答える 3

12

代わりに簡単な計算を使用してください。

document.write(Math.floor(i * 100) / 100);

(jsフィドル)

再利用のために独自の関数に貼り付けることができます。

function myToFixed(i, digits) {
    var pow = Math.pow(10, digits);

    return Math.floor(i * pow) / pow;
}

document.write(myToFixed(i, 2));

(jsフィドル)

于 2012-04-19T13:54:37.447 に答える
9

長い文字列をカットするだけです:

i.toFixed(3).replace(/\.(\d\d)\d?$/, '.$1')
于 2012-04-19T13:54:43.993 に答える
0

少し複雑なアプローチ:

var i=4.568,
    iToString = ​i + '';
    i = parseFloat(iToString.match(/\d+\.\d{2}/));
console.log(i);

これは効果的に変数iを取得して文字列に変換し、正規表現を使用して小数点の前の数字とその小数点の後の 2 つを照合し、 を使用しparseFloat()てそれを数字に変換します。

参考文献:

于 2012-04-19T13:54:40.583 に答える