Кубики куются на кухне

В чем моя ошибка?

var weight = 5;
var length = 60;
var age = 5;
var activityRate = 1.725;
var rateOfMetabolism = 88.362 + (13.397 * weight) + (4.799 * length) - (5.677 * age);
var calorieRate = rateOfMetabolism * activityRate;
var proteins = calorieRate * 0.40;
var fats = calorieRate * 0.25;
var carbohydrates = calorieRate * 0.35;

console.log('Уровень метаболизма ’ + rateOfMetabolism);

calorieRate = Math.round(calorieRate);
console.log('Норма калорий ’ + calorieRate);

proteins = Math.round(proteins);
console.log('Белки ’ + proteins);

fats = Math.round(fats);
console.log('Жиры ’ + fats);

carbohydrates = Math.round(carbohydrates);
console.log('Углеводы ’ + carbohydrates);

Посмотрите внимательно на код. Для расчетов proteins и fats вы используете не округленное значение calorieRate. Отсюда и разница.

1 лайк

Спасибо за помощь!

var weight = 5;
var length = 60;
var age = 5;
var activityRate = 1.725;

var metabolism = 88.362 + (13.397 * weight) + (4.799 * length) - (5.677 * age);
var calorieRate = Math.round(metabolism * activityRate);
var proteins = Math.round(calorieRate * 0.40);
var fats = Math.round(calorieRate * 0.25);
var carbohydrates = Math.round(calorieRate * 0.35);

правильный вариант

Физически правильнее жиры, белки, углеводы рассчитывать не по округленным калориям (природа не округляет), это потом для нашего удобства, мы округляем конечные результаты.