【问题标题】:Integers adding as strings in Javascript [duplicate]在Javascript中添加为字符串的整数[重复]
【发布时间】:2013-12-28 07:40:38
【问题描述】:

我有两个文本字段 imageWidth 和 imageHeight...我想从它们那里获取输入,添加当前鼠标指针位置,然后做一些事情:

x = e.pageX - canvas.offsetLeft;
y = e.pageY - canvas.offsetTop;
var wWidth = document.getElementById('imageWidth').value;  
var wHeight = document.getElementById('imageHeight').value;
var b = x + wWidth;
alert(b);
if(x+wWidth < 800 && y+wHeight < 1560)
{
//some work here
}

所以如果用户输入宽度为 400 且 x 返回 151...b 的值为 151400...而我希望它为 551 以使循环正常工作...

【问题讨论】:

标签: javascript integer addition


【解决方案1】:

您应该阅读parseInt() 方法 --> parseInt() on MDN

【讨论】:

    【解决方案2】:

    这应该可行:

    x = e.pageX - canvas.offsetLeft;
    y = e.pageY - canvas.offsetTop;
    var wWidth = document.getElementById('imageWidth').value;  
    var wHeight = document.getElementById('imageHeight').value;
    var x1 = parseInt(x, 10) + parseInt(wWidth, 10);
    var y1 = parseInt(y, 10) + parseInt(wHeight, 10);
    if(x1 < 800 && y1 < 1560)
    {
        //some work here
    }
    

    【讨论】:

      【解决方案3】:

      Javascript 是一种具有隐式类型的语言。这意味着当你想做数学时,你必须告诉它事物的类型。您的代码只是告诉它连接字符串,因此您会看到结果。

      试试这个:

      x = e.pageX - canvas.offsetLeft;
      y = e.pageY - canvas.offsetTop;
      var wWidth = document.getElementById('imageWidth').value;  
      var wHeight = document.getElementById('imageHeight').value;
      var b = parseInt(x, 10) + parseInt(wWidth, 10);
      alert(b);
      if(x+wWidth < 800 && y+wHeight < 1560)
      {
      //some work here
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-11-09
        • 2017-12-08
        • 1970-01-01
        • 2017-04-12
        • 1970-01-01
        • 2015-10-20
        • 1970-01-01
        • 2016-02-03
        相关资源
        最近更新 更多