0
function totalPrice()
        {
        var totalItems = document.getElementsByName("price").length;
        var total = 0;
        var rgx = /[^0-9]\x2e$/g;
        var price;
        var string_in = document.getElementsByName("price");

        for (var x=0; x<totalItems-1; x++){

            price = new Number(rgx.exec(string_in[x].text));
            parseFloat(total) = parseFloat(total) + parseFloat(price); //This is where the error occurs
        }
        document.getElementById("total").innerHTML = ' $' + total;
        }

これは、スクリプトが実行する私の関数です。「カート」にはx個のアイテムがあります。この関数はJavascriptでのみ記述しなければなりません。PHPはありません。名前付き要素には、123.45ドル(またはそれ以上の桁)の形式の価格が含まれています

4

1 に答える 1

4

えーと…parseFloat()左側のあたりから外してください。

補足:特にお金に関しては、常に整数で作業してください。この場合、コード側にセント単位の価格を設定してください。結果をドルで表示するには、最後に100で除算する(または文字列関数を使用して小数点を挿入する)だけです。これにより、浮動小数点の不正確さが回避されます。

于 2012-10-16T16:41:42.900 に答える