2012-01-09 7 views
0

を無視しているコードは次のとおりです。parseFloatは私のための簡単なJavaScriptコードは、ここでは小数

function updateCartSubtotal() { 
    var subtotal = 0.00; 
    $('span.item-subtotal-value').each(function() { 
     subtotal = subtotal + parseFloat($(this).text()); //24.00 for example. 
    }); 

    console.log(subtotal); // Logs: "144" 
    $('span.cart-subtotal-value').text(subtotal); //Places: "144" in the .text(). 
    $('span.cart-subtotal').text(subtotal); 
} 

だから私は間違って何をやっていますか?なぜこれが2つの末尾のゼロを無視していますか?

正しく追加されていますが、小数点は表示されません。

答えて

3

123および123.00は同じである。フロートを表示するとき、不要な数字を表示する理由はありません。

さらに重要なことに、浮動小数点数は通貨に固有のものではないため、小数点が表示される場合は、多くの場合、が必要です。

数字を特定の桁数で表示する場合は、subtotal.toFixed(2)を使用します。それはあなたの小数点以下の桁数の正確な量の文字列を与える:

>>> 123.00 
123 
>>> (123.00).toFixed(2) 
"123.00" 

だからあなたのコードは次のようになります。

$('span.cart-subtotal-value, span.cart-subtotal').text(subtotal.toFixed(2)); 
+2

この場合、これらの数字を表示するには**が必要です。これは、価格の小計を表示するためのものです。したがって、2つの余分なゼロが必要です。 –

+0

私の編集した答えを見てください。 – ThiefMaster

0

あなたはPHPJSからnumber_format機能に興味があるかもしれません、これはまた意志として通貨でよく見られる千の区切り文字が含まれます。

+1

JavaScriptで何か[既に利用可能](https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/Number/toFixed)を使用してみませんか?何千ものセパレータが必要/望めば、あなたは正しいでしょう - あなたがリンクした機能は良いアイデアです。 – ThiefMaster

関連する問題