Javascript计算返回错误的数字

时间:2014-01-27 18:52:59

标签: javascript jquery

所以我试图让两个输入字段相互计算它们的值。到目前为止,这是我的代码:

function strToNumber (str) { 
    return Number(str.replace(/\D/g,''));
}

var number_2_calc;
var number_1 = strToNumber($("#number_1").val());
var number_2 = strToNumber($("#number_2").val());

$("#number_2").focusout(function(){
    if(number_2 == 0) {
        $("#number_2").val("");
    } else {
        number_2_calc = number_2 +(number_1 * 0.1);
        $("#number_2").val(number_2_calc);
    }
});

$("#number_1").focusout(function() {
    if(number_2 == 0) {
        $("#number_2").val("");
    } else {
        //not sure if necessary to create seperate vars here
        var number_2_stored = strToNumber($("#number_1").val());
        var number_1_stored =strToNumber($("#number_2").val());

        number_2_calc = 0;

        number_2_calc = number_2_stored +(number_1_stored * 0.1);
        Math.round(number_2_calc).toFixed(2);
        $("#number_2").val(number_2_calc);
    }
});

所以当你填写任一字段然后聚焦时我会尝试制作它会相应地改变输入。当number_2聚焦时,这种方法很好,但是当你返回并更改number_1时,这些值会变得混乱。可能只是忽略了一些简单的东西,因为这不应该那么困难。

1 个答案:

答案 0 :(得分:1)

对结果进行舍入时,需要指定回“number_2_calc”。

number_2_calc = Math.round(number_2_calc).toFixed(2);