11

私のコードでは、たとえば次のように複数の値を受け入れます。

8.7456
8.7
8

そして私はそれらを次のように表示させる必要があります

8.74
8.7
8

つまり、小数点以下2桁まで表示します。

これが最初の値に役立つことは理解してい.toFixed(2)ますが、2番目と3番目の値には、不要な後続ゼロがあります。

希望する結果を出す方法は?

4

2 に答える 2

15

Number.toFixed数値を2桁に切り上げ、文字列としてフォーマットするために使用します。次に、を使用String.replaceして末尾のゼロを切り取ります。

[8.7456, 8.745, 8.74, 8.7, 8].forEach(function(num) {
  var str = num.toFixed(2).replace(/\.?0+$/, "");
  console.log(num, str);
});

于 2012-04-18T19:26:26.243 に答える
5

100を掛け、、100floorで割ります。

var n = 8.7456;
var result = Math.floor(n * 100) / 100; // 8.74

編集:事後にこの質問を見ている場合、これはおそらくあなたが望むものではありません。8.7456これは、として表示されるという奇妙な要件を満たしてい8.74ます。関連するコメントも参照してください。

于 2012-04-18T18:40:54.737 に答える