点击事件后输入值内的2个小数点

时间:2017-10-13 21:52:45

标签: javascript jquery

FIDDLE

添加和减去浮点数的问题。

所以如果以0.2开始

0.2 + 0.2 = 0.4

0.4 + 0.2 = 0.6000000000000001(应为0.6)

我发现我必须使用" toFixed(2)"但这是为了字符串?为了让它变得正常,我在代码中改变了什么:

// The button to increment the product value
$(document).on('click', '.product_quantity_up', function(e){
    e.preventDefault();
    var arrayData = $(this).data('field-qty');
    var arr = arrayData.split(';');
    for (i = 0; i < arr.length; i++) {
        console.log(arr[i]);
    }
    fieldName = arr[0];
    var currentVal = parseFloat($('input[name='+fieldName+']').val());
    var minimalVal = parseFloat($('input[name='+fieldName+']').attr("data-minimal_quantity"));

    if (!isNaN(currentVal) && currentVal < minimalVal) {
        $('input[name='+fieldName+']').val(minimalVal);
        $(this).parent().parent().find(".ajax_add_to_cart_button").attr("data-minimal_quantity",minimalVal);
    }
    else {
        $('input[name='+fieldName+']').val(currentVal + parseFloat(arr[1])).trigger('keyup');
        $(this).parent().parent().find(".ajax_add_to_cart_button").attr("data-minimal_quantity",currentVal + parseFloat(arr[1]));
    }

    $('#'+fieldName).change();



});

1 个答案:

答案 0 :(得分:2)

您遇到的问题是浮点数如何存储信息。 如果你需要使用精确的小数位数,我建议你使用整数,并格式化输出以将最后n个位置反映为小数。

例如,使用2位小数,1.00实际上是100

0.2 + 0.2 = 0.4将以20 + 20 = 40

完成

要将此字符打印给用户,您将整数值解析为字符串,并将输出格式化为"0.40"(字符串)