2

厄介な問題があります...

次のような通貨をフォーマットするために小さなJavaScriptを使用しています

現在の行を使用して、2990 から 2.990 および 129900 から 129.900 に変換します。

var wdiscount2 = wdiscount.toFixed(3);

ただし、789 などの 1000 未満の数値がある場合は、0.789 のように表示されます。

これを簡単に回避する方法はありますか?

4

4 に答える 4

1

質問はすでに回答されているように見えますが、別の方法があります。これは興味深いかもしれません。つまり、正規表現を使用することです。

例:

var num  = 2990;
var formattedNumber = num.toString().replace(/(\d)(?=(\d{3})(?!\d))/g, "$1.")

いくつかのテストケース(num左側、formattedNumber右側):

  • 2990=>2.990
  • 129900=>129.900
  • 789=> 789(これはありません.

それがお役に立てば幸いです。

于 2013-02-13T12:43:08.903 に答える
1

おそらく、Joss Crowcroft のaccounting.jsなどのライブラリを使用するのは良い考えでしょうか? あらゆる種類のフォーマットをサポートしており、多くの人が使用していると思います。

wdiscount2 = accounting.formatMoney(wdiscount)
于 2012-10-12T10:37:34.347 に答える
1
 var wdiscount2 = wdiscount > 999 ? wdiscount.toFixed(3) : wdiscount;
于 2012-10-12T10:38:26.313 に答える