6


2

var total = 0; $( "。amount")。each(function(){var value = $(this).val(); value =(value.length <1)? 0:値。 var tmp = parseFloat(value).toFixed(2);合計= tmp。 ;)); $( "。total")。テキスト(合計);

私はいくつかのテキストボックスをループしてそれらの値を合計しようとしています。 これは厄介な文字列を生成します。 何が足りないの? 最初のテキストボックスに8を入力すると、合計テキストは "08.000.000.000.00"になります。 何がおかしいのですか? 通貨としてフォーマットしたいのですが、そうでない場合は、少なくとも2つの10進数だけを使用してください。 任意のポインタ?

ありがとう、サンディエゴの〜ck

3 Answer


13


toFixed converts the object from a Number to a String.

完全な値をそのままにして、最後に.toFixedを使用して変換するだけです。

$( "。total")。text(total.toFixed(2));

あるいは、文字列を数値に変換します。

合計=合計tmp。


1


ちなみに、jQuery用の優れた数学的集約プラグインがあります。http://www.pengoworks.com/workshop/jquery/calculation /calculation.plugin.htm

そのプラグインを使用することは間接的にあなたの問題を解決するかもしれません。

これを使用すると、スクリプトは次のようになります。

$( '。total')。text($( '。amount')。sum());


0


parseFloatを文字列に変換してからtotalに追加しています。 物が追加されたら、最後の行に.toFixed(2)を追加するだけです。

var total = 0; $( "。amount")。each(function(){var value = $(this).val(); value =(value.length <1)? 0:値。 var tmp = parseFloat(value);合計= tmp。 ;)); $( "。total")。テキスト(合計).toFixed(2);