列が12か月+要約であるレコードの表があります。私は単純なjQueryアクションを持っています。これonChange
は、要約行の各月の数を均等に分割するものです。
会計処理なので、数値を .00 に丸め、DB に格納します。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/
それをより良く実装する方法はありますか?
- つまり、12 で割り切れるということは、許可されるすべての数値は、coma の後に最大 2 つの数値で分割されるということです。
- したがって、0.92 * 12 = 11.04 であるため、11 は 11,04 に変更されます。
- 1324 => 1324,08 = 110,34*12
- 私は言うことができません: 私はユーザーが最初に入力したかった最も近い番号をユーザーに提供したいので、悪い番号です.