javascript - I keep getting NaN and i can't find out how to fix it -
it happens when gets cost2. think problem might in trying define price2, else works fine. i'm new javascript i'm sure it's simple mistake, great!
<html> <body> <h1>gas mileage</h1><br></br> </body> <script type="text/javascript"> var mpg, price1, distance, gallons, cost1, price2, cost2; mpg = prompt("enter car's miles per gallon"); document.write("your car gets "+mpg+" miles per gallon."); document.write("<br>"); price1 = prompt("enter current cost of gas"); document.write("gas costs $"+price1+" per gallon."); document.write("<br>"); distance = prompt("enter amount of miles travel"); gallons = distance/mpg; cost1 = gallons*price1; document.write("to travel "+distance+" miles, cost $"+cost1); document.write("<br>"); price2 = (0.1+price1); cost2 = gallons*price2; document.write("but if gas cost 10 cents more per gallon, cost $"+cost2); </script> </html>
prompt returns string.
if want use input in calculations, you're going have use parseint or parsefloat:
var answer1 = parseint(prompt("question 1")); var answer2 = parsefloat(prompt("question 2")); that said, division , multiplication operators coerce it's parameters numbers.
the problem occurs when coercion doesn't work: price2 = (0.1+price1);
there, because + concatenate 2 parameters string, price2 can string "0.11.54" if price1 "1.54".
trying multiply number invalid number results in nan.
converting user input string number solves issue, since + can add 2 numbers together, instead of concatenating them.
Comments
Post a Comment