有记录表,其中列为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/
如何更好地实施它?
答案 0 :(得分:0)
你应该减去余数。如果你想要最接近原始数字的数字,那么减去余数并加上12如果余数大于6:
var remainder = (summaryValue * 100) % monthCount;
summaryValue = (summaryValue * 100 - remainder + (remainder > 6? 12 : 0)) / 100;