如何从输入标签中加总两个数字? [英] how to sum two numbers from input tag?

查看:175
本文介绍了如何从输入标签中加总两个数字?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


可能重复:

如何添加两个字符串,好像它们是数字?

我写了一个简单的JavaScript代码,我想使用两个输入框并从这两个值中添加数字。这是代码,我看到的结果是1520而不是35。

I wrote a simple JavaScript code and I want to use two input box and add numbers from the two value. Here's the code, and I see the result 1520 instead of 35.

我该如何解决?

n1 <input type = "number" id = "n1" value=15 />
n2 <input type = "number" id = "n2" value=20 />

<p>Sum?</p>
<button onclick="sum()">Try it</button>
<p id="demo2">Result?? </p>

<script type="text/javascript">
 function sum() 
{ 
    var fn, ln; 
    fn = document.getElementById("n1").value; 
    ln = document.getElementById("n2").value; 
    result =  (fn+ln); 
    document.getElementById("demo2").innerHTML = result; 
}
</script>


推荐答案

使用 parseInt(),或 parseFloat();您遇到的问题是您连接两个字符串,而不是添加两个数字。 parseInt()(假设它找到一个实数)通过将字符串转换为数字来解决该问题:

Use parseInt(), or parseFloat(); the problem you were experiencing is that you were concatenating two strings, not adding two numbers. parseInt() (assuming that it finds a real number) addresses that issue by converting the string to a number:

 function sum() 
{ 
    var fn, ln, result; 
    fn = parseInt(document.getElementById("n1").value, 10);
    ln = parseInt(document.getElementById("n2").value, 10);
    result =  (fn+ln); 
    document.getElementById("demo2").innerHTML = result; 
}

,10 之后出现的是基数,它确保返回的数字(如果有的话)的数字基数。

The , 10 that appears after the value is the radix, which ensures which number-base the returned number (if any) will be.

另请注意,结果变量也应在函数内声明,以避免污染全局范围(并可能在其他地方创建其他变量的问题)。

Also note that the result variable should be declared within the function as well, to avoid polluting the global scope (and possibly creating problems with other variables elsewhere).

参考文献:

  • parseFloat().
  • parseInt().

这篇关于如何从输入标签中加总两个数字?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆