Я не программист по профессии, поэтому, пожалуйста, не держите мой простой вопрос против меня. Я уверен, что ответ прост, но я не могу понять.Преобразование строки в число в калькуляторе
Я пытаюсь создать калькулятор мульчирования, чтобы надеть сайт моей компании. Мой код, как представляется, принимает вход, но возвращает значение NaN. Очевидно, это преобразование информации в строку, как я ожидал. Я попытался преобразовать его обратно в число, вычитая 0 из моей последней переменной, а также используя parseInt. Кажется, никто не работал. Кто-нибудь захочет объяснить, как решить эту проблему, и почему ваше решение сработало. Я пытаюсь понять, что я сделал не так.
См. Приведенный ниже код.
Спасибо.
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h1>Mulch Calculator</h1>
<form name="calcInput" id="calcInfoInput">
The length of the area you need to cover (in feet). <input type="text" name="length"
<br></br>
<br></br>
The width of the area you need to cover (in feet). <input type="text" `enter code here`name="width"
<br></br>
<br></br>
The depth of coverage you need (in inches). <input type="text" name="depth"
<br></br>
<br></br>
</form>
<input type="submit" value="Calculate Your Mulch Needs." onclick="processForm()" name="submit">
<input type="reset" value="Clear This Form.">
</form>
<script type ="text/javascript">
function processForm()
{
var allInfo = document.getElementById ("calcInfoInput");
var bedLength = allInfo.elements["length"].value;
var bedWidth = allInfo.elements["width"].value;
var bedDepthInches = allInfo.elements["depth"].value;
var squareFeet = bedLength * bedWidth;
var bedDepth = bedDepthInches/12;
var cubicFeet = squareFeet * bedDepth;
var cubicYards = cubicFeet/27;
//cubicYards = cubicYards-0;
//cubicYards = parseInt(cubicYards, 10);
document.write('You will need at least '+ cubicYards +' cubic yards for your project.');
}
</script>
</body>
вам нужно спецификации '0 'для значения "пустых" входов. Кроме того, тип = номер обеспечит более удобный UX. – dandavis
Вы можете принуждать свои значения ввода к целым числам либо путем префикса '+' им: '+ allInfo.elements [" length "]. Value', либо с помощью' parseInt (allInfo.elements ["length"]. Value, 10) ; '. – Andy
Спасибо, дандавис и Энди. Я ценю вашу помощь. –