Awwww оснастка!«Ваш расчет ИМТ неверен» - PullRequest
0 голосов
/ 04 июня 2019

Я работаю над технической оценкой калькулятора ИМТ, но застрял на этапе использования формулы.Инструкции для вычисления ИМТ:

Инструкция 1:

Рост каждого пользователя выражается в футах, поэтому для вычисления необходимо сначала преобразовать его в метры. СОВЕТ: кратная высота на 0,3048 .

Инструкция 2:

BMEye рассчитывает BMI спродвинутый алгоритм!BMEye имеет представление о странах с самой здоровой диетой, и это Чад, Сьерра-Леоне, Мали, Гамбия, Уганда, Гана, Сенегал, Сомали, Кот-д'Ивуар и Изреал .Если пользователь из какой-либо из этих стран, то рассчитанный показатель ИМТ умножается на 0,82 , что немного снижает его.

Последняя инструкция :

Следуя приведенным выше инструкциям и советам, заставьте computeBMI использовать вес, рост и страну пользователя для вычисления и возврата значения BMI для пользователя.

То, что я пытался сделатьdo:

Я попытался запустить код в моем возвышенном тексте в локальном редакторе, и он правильно рассчитал BMI, но когда я ввожу код на Google Grader Tracker, который является платформой, на которой выполняется оценка, он выдает ошибку, говорящую«Ваш расчет ИМТ неверен!»

Кто-нибудь может помочь мне исправить эту ошибку?Ниже приведена функция, которая получает объект пользователя путем определения роста, веса и страны, чтобы помочь с вычислениями.

const computeBMI = ({weight, height, country}) => {
           const LowBMIcountries = ["Chad", "Sierra Leone", "Mali", "Gambia", 
            "Uganda", "Ghana", "Senegal", "Somalia", "Ivory Coast", "Israel"];  
              const bmiRate = 0.82;

               let ConvertHeight = height * 0.3048;

               let BMI = weight / Math.pow(ConvertHeight,2);

                if (LowBMIcountries.includes(country)) {
                  BMI *= bmiRate;
                 }
               return Math.round(BMI, 2);

            };

Ответы [ 3 ]

1 голос
/ 04 июня 2019

В вопросе не упоминается округление, не говоря уже о том, что вы используете Math.round неверно. Math.round принимает один аргумент и округляет до ближайшего целого числа. Если вы хотите две десятичные точки, используйте toFixed(2).

0 голосов
/ 08 июня 2019

изучите ниже ..

entervar computeBMI = function({weight,height,country}) {



    const bmiScale = 0.82;
    let feetToMeter = 0.3048;


     const countries = ['Chad','Sierra Leone','Mali','Gambia','Uganda',
              'Ghana','Senegal','Somalia','Ivory Coast','Isreal'];
   const heightinmeter = (height * feetToMeter);

    let bim = ((weight)/(heightinmeter ** 2));


    if(countries.includes(country)) {bim = bim * bmiScale}

    var fixednum = bim.toFixed(1);

    return fixednum;


  } 
0 голосов
/ 06 июня 2019

Через пару дней я нашел правильный ответ на этот непростой вопрос, и я знаю, что в будущем он будет полезен другим.

const computeBMI = ({weight, height, country}) => {

const countries = ["Chad", "Sierra Leone", "Mali", "Gambia", "Uganda",              
          "Ghana", "Senegal", "Somalia", "Ivory Coast", "Isreal"];

          const hm = height * 0.3048;
          const ratio = (countries.includes(country) ? 0.82 : 1);

      const BMI = (weight / (hm * hm)) * ratio;
          return parseFloat(BMI).toFixed(1);

           }; 
...