禁止在jquery中分配不同的数字

时间:2013-05-22 13:23:25

标签: javascript jquery math

有记录表,其中列为12个月+摘要。 我有简单的jQuery动作,其中onChange的摘要行每个月等分数。

因为它是会计资料我将数字舍入为.00并将其存储在数据库中。 我想禁止输入12不可分割的数字。

不幸的是,我的算法存在缺陷:/

(例如,输入11,更改为11.08!= 12 * 0.93)

function round(num) {
    return Math.ceil(num * 100) / 100;
}

$("#summary").change(function() {
    var summaryValue = $(this).val();
    var monthCount = $('.month').length;

    var remainder = (summaryValue * 100) % monthCount;
    summaryValue = (summaryValue * 100 + remainder) / 100; 
    $(this).val(summaryValue);    

    var avarage = round(summaryValue / monthCount);

    $('.month').each( function( key, value ) {
        $(this).val(avarage);
    });
});

http://jsfiddle.net/igos/z3EEQ/

如何更好地实施它?

  1. 通过12分割,我的意思是,每个数字允许分配最多2 昏迷后的数字。
  2. 所以11将改为11,04,因为0.92 * 12 = 11.04;
  3. 1324 => 1324,08 = 110,34 * 12
  4. 我不能说:数字不好,因为我想向用户提供他最初想要输入的最接近的号码。

1 个答案:

答案 0 :(得分:0)

你应该减去余数。如果你想要最接近原始数字的数字,那么减去余数并加上12如果余数大于6:

var remainder = (summaryValue * 100) % monthCount;
summaryValue = (summaryValue * 100 - remainder + (remainder > 6? 12 : 0)) / 100;