Форма, которую я настроил, имеет переключатели с разными значениями. Среднее значение рассчитывается на основе того, какое значение проверено и сколько значений проверено. Затем он округляется до ближайшего целого числа. Если выбрано значение 1, то это должно быть -1 в расчете. Это прекрасно работает для некоторых записей. Однако странная проблема заключается в том, что в некоторых записях среднее вычисленное значение может быть другим значением по сравнению с аналогичной записью в зависимости от порядка выбора значений, например
7,5,7,1,5,5,3 отпечатков в среднем 5
3,5,5,1,7,5,7, печатает в среднем 4
7 + 5 + 7-1 + 5 + 5 + 3 дает 31/7 = 4,42857, что должно быть 4, но при этом среднее значение выводится как 5
3 + 5 + 5-1 + 7 + 5 + 7 дает 31/7 = 4,42857, и это выдает правильное среднее значение, равное 4
Ниже приведен мой код для расчета в js. Я не уверен, как это произойдет. Буду очень признателен за помощь и надеюсь, что предоставил достаточно информации.
for(i = 1; i <= activities_num; i++){
var value_str = $(`input[name=${section}${i}]:checked`).val();
if(value_str !== undefined) {
var value = parseInt(value_str);
if(value === 1) {
value = -1;
}
if(value === 0 ) {
counter = counter -1;
}
options_values_sum += value;
counter ++;
}
console.log(i);
}
var average = Math.round(options_values_sum / counter);