35

私はいくつかの値を持っています:

var one = 1.0000
var two = 1.1000
var three = 1.1200
var four = 1.1230

機能:

function tofixed(val)
{
   return val.toFixed(2);
}

このリターン:

1.00
1.10
1.12
1.12 

住む

ドット - 2 の後に最大サイズが必要ですが、!= 0 の後の数字の場合のみです。

1
1.1
1.12
1.12 

どうすれば作れますか?

4

4 に答える 4

87

.toFixed(x)文字列を返します。再びフロートとして解析するだけです:

return parseFloat(val.toFixed(2));

http://jsfiddle.net/mblase75/y5nEu/1/

于 2013-07-09T18:55:30.213 に答える
21

文字列出力が必要だと仮定すると

function myFixed(x, d) {
    if (!d) return x.toFixed(d); // don't go wrong if no decimal
    return x.toFixed(d).replace(/\.?0+$/, '');
}
myFixed(1.0000, 2); // "1"
myFixed(1.1000, 2); // "1.1"
myFixed(1.1200, 2); // "1.12"
myFixed(1.1230, 2); // "1.12"
于 2013-07-09T18:55:17.613 に答える
11

それを行う「正しい」方法は次のとおりです。

return Math.round(num*100)/100;

小数点以下 2 桁に切り捨てる場合 (つまり、1.238 は 1.24 ではなく 1.23 になります)、floor代わりに を使用しroundます。

于 2013-07-09T18:57:07.550 に答える