0

inputと の 2 つのフィールドがあるストアに追加する商品がありpriceBaseますpriceFinal。1枚目は税抜き、2枚目は税込です。

このJavaScript関数を使用している間:

jQuery(function($){

    var priceBase = $('input[name="mprices[basePrice][]"]', '#productPriceBody');
    var priceFinal = $('input[name="mprices[salesPrice][]"]', '#productPriceBody');
    var priceDiff = priceFinal.val() - priceBase.val();
    var priceTax = priceDiff / priceBase.val();


    alert(priceFinal.val()); // 1.40004
    alert(priceBase.val());  // 1.16667
    alert(priceDiff);        // 0.23333399999999993
    alert(priceTax);         // 0.19999999999999993

});

からまでのpriceTax値をどのように丸めると思いますか? ご存知の普通の算数の計算と同じように、4 以下なら小さい方に丸め、5 なら大きい方に丸めます。0.199999999999999930.20

事前にご提案いただきありがとうございます。

4

1 に答える 1

7

あなたがしたいようです

alert(priceDiff.toFixed(2));

ただし、計算を行う前に値を解析する必要があります。あなたは幸運なので、ここで動作します:

"33"-"12" => "21"
"33"+"12" => "3312"

したがって、将来のバグを回避するために (たとえば+、代わりに使用する-場合)、フィールド値を常に解析することをお勧めします。

var priceDiff = parseFloat(priceFinal.val()) - parseFloat(priceBase.val());
于 2013-04-16T12:22:35.450 に答える