web-dev-qa-db-ja.com

数値を小数点以下2桁にフォーマットしようとしていますjQuery

重複の可能性:
JavaScript:小数点以下2桁で数値をフォーマットする

変数を使用して少し混乱し、今では計算がまったく機能しないようです!?

 $("#discount").change(function(){
            var list = $("#list").val();
            var discount = $("#discount").val();
            var price = $("#price");
            var temp = discount * list;
            var temp1 = list - temp;
            var total = parseFloat($(this).temp1()).toFixed(2);

            price.val(total);       
 });
8
benhowdle89

$(this).temp1()は特に場違いに見えますが、temp1変数を使用するつもりだったと思います。すでに数値であるため、parseFloatを使用する必要もありません。

$("#discount").change(function() {
    var list = $("#list").val();
    var discount = $("#discount").val();
    var price = $("#price");
    var temp = discount * list;
    var temp1 = list - temp;
    var total = temp1.toFixed(2);

    price.val(total);
});
25
Andy E

計算する前に、まず文字列を数値に変換することをお勧めします。例えば、

_var list = parseFloat($("#list").val());
var discount = parseFloat($("#discount").val());
var price = $("#price");
var total = list - (discount * list);
price.val(total.toFixed(2));
_

また、割引がパーセンテージである場合(たとえば、25)、100で割る必要があります。つまりlist - (discount/100 * list)

ところで、これを参照してくださいSO ToFixedの使用に対して人々が警告したスレッド: javascriptでfloatをフォーマットする方法は?

4
VinayC