简体   繁体   English

为什么此parseFloat无效?

[英]Why doesn't this parseFloat work?

I'm very new to JavaScript so excuse my newbiness. 我对JavaScript非常陌生,所以请原谅。 But I'm currently running this code, to test some stuff out 但是我目前正在运行这段代码,以测试一些东西

var firstNumber = prompt("enter the first number ");
var secondNumber = prompt("enter the second number ");
var theTotal = firstNumber + secondNumber;
firstNumber = parseFloat(firstNumber);
secondNumber = parseFloat(secondNumber);
document.write(firstNumber + " added to " + secondNumber + " equals " +    theTotal);

Why doesn't that add the numbers up correctly? 为什么那不正确地加数字? I know the proper way of doing it would be to wrap the parseFloat around the prompt, but I just want to know why this doesn't work. 我知道这样做的正确方法是将parseFloat包裹在提示符周围,但是我只想知道为什么这行不通。 Thanks in advance. 提前致谢。

Parse should be done before doing the add operation: 解析应在执行添加操作之前完成:

var firstNumber = prompt("enter the first number ");
var secondNumber = prompt("enter the second number ");
firstNumber = parseFloat(firstNumber);
secondNumber = parseFloat(secondNumber);
var theTotal = firstNumber + secondNumber;
document.write(firstNumber + " added to " + secondNumber + " equals " +    theTotal)

firstNumber + secondNumber正在添加strings ...尝试将firstNumber*1 + secondNumber*1快速转换为数字并查看结果。

When you add firstNumber to secondNumber, they're still strings; 当您将firstNumber添加到secondNumber时,它们仍然是字符串; you're not converting them to numbers until after the addition. 您要等到加法之后才能将它们转换为数字。 Do this instead: 改为这样做:

firstNumber = parseFloat(firstNumber);
secondNumber = parseFloat(secondNumber);
var theTotal = firstNumber + secondNumber;
document.write(firstNumber + " added to " + secondNumber + " equals " +    theTotal);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM