Как получить номер для отображения в окне предупреждения, а не NAN - PullRequest
0 голосов
/ 16 октября 2019

Я изучаю javascript, и я создал простую программу для преобразования футов в метры и фунтов в килограммы, и я хочу отобразить вывод с помощью блоков предупреждений в правильных измерениях

Я проверил переменные, используя typeof и еговозвращаюсь номер, но в окнах предупреждений все еще написано NAN.

Я новичок в javascript, и я следую вместе с курсом udemy.

var kgMark = parseFloat(kgMark); 
var meterMark = parseFloat(meterMark);
var bmiMark = parseFloat(bmiMark);
var feetMark = parseFloat(feetMark);
var lbsMark = parseFloat(lbsMark);

kgMark = lbsMark / 2.2046;
meterMark = feetMark / 3.2808;
bmiMark = kgMark / (meterMark * meterMark);

feetMark = prompt('How tall is mark in feet?');
lbsMark = prompt('How much does mark weigh in pounds?');



alert('Mark is ' + ' ' + kgMark + ' '+ 'kilograms');
alert('Mark is ' + ' ' + meterMark + ' ' + 'meters');
alert('Marks BMI is ' + ' ' + bmiMark);

Я пробовал несколько разных способов, и яя действительно застрял. Я получаю сообщение об ошибке NAN в окне предупреждения.

Ответы [ 2 ]

0 голосов
/ 16 октября 2019

Изменение кода на следующее сработало:

var feetMark = parseFloat(prompt('How tall is mark in feet?'));
var lbsMark = parseFloat(prompt('How much does mark weigh in pounds?'));

kgMark = parseFloat(lbsMark / 2.2046);
meterMark = parseFloat(feetMark / 3.2808);

var bmiMark = parseFloat(kgMark / (meterMark * meterMark));

console.log('Mark is ' + ' ' + kgMark + ' '+ 'kilograms');
console.log('Mark is ' + ' ' + meterMark + ' ' + 'meters');
console.log('Marks BMI is ' + ' ' + bmiMark)

То, что происходит в опубликованном вами коде, представляет собой смесь того, что называется hoisting, и того факта, что при запуске parseFloat на undefined переменная, составляющая эти переменные NaN;какую бы операцию вы на ней ни делали, всегда будет помнить NaN.

Итак, я бы предложил parseFloat переменные, когда вы уверены, что в них есть какое-то значение.

Надеюсь, это поможет.

0 голосов
/ 16 октября 2019

Сначала возьмите значение, затем выполните каждую логику:

var feetMark = prompt('How tall is mark in feet?');
var lbsMark = prompt('How much does mark weigh in pounds?');


feetMark = parseFloat(feetMark);
lbsMark = parseFloat(lbsMark);

var kgMark = lbsMark / 2.2046;
var meterMark = feetMark / 3.2808;
var bmiMark = kgMark / (meterMark * meterMark);

alert('Mark is ' + ' ' + kgMark + ' '+ 'kilograms');
alert('Mark is ' + ' ' + meterMark + ' ' + 'meters');
alert('Marks BMI is ' + ' ' + bmiMark);
...