Javascript AngularJS中的整数解析

Javascript AngularJS中的整数解析,javascript,math,angularjs,string-parsing,Javascript,Math,Angularjs,String Parsing,我正在我们的一个应用程序中使用 在下面的代码中,当加载页面表达式加法编号时,valuetoadd正确解析并给出输出为1+1=2,但在更改输入时,它没有正确解析,并给出输出为“1+2=12” 我需要在哪里换车 <div ng-controller='MathsController'> <input type="range" min="0" max="100" step="1" value="1" ng-model='valuetoadd'/> <p&

我正在我们的一个应用程序中使用

在下面的代码中,当加载页面表达式加法编号时,valuetoadd正确解析并给出输出为1+1=2,但在更改输入时,它没有正确解析,并给出输出为“1+2=12”

我需要在哪里换车

<div ng-controller='MathsController'>
    <input type="range" min="0" max="100" step="1" value="1" ng-model='valuetoadd'/>

    <p>Addition table of <b>{{valuetoadd}}</b></p>

    <div ng-repeat='number in numbers'>
        {{number}} + {{valuetoadd}} = {{ addition(number,valuetoadd) }}
    </div>
</div>
<script type="text/javascript">
    function MathsController($scope) 
    {
        $scope.valuetoadd= 1;
        $scope.numbers =[1,2,3,4,5,6,7,8,9,10]; 
        $scope.addition = function(number,valuetoadd)
        {
            return number+valuetoadd;
        }
    }
</script>

您需要将变量强制转换为某种数值类型。默认情况下,HTML输入值作为字符串传递

$scope.addition = function (number, multiplier) {
    return number + parseInt(multiplier, 10);
}
可能是作为字符串传递的数字beging。 尝试:

+将字符串转换为数字

编辑: 现在,我看到乘法器作为字符串传递。 所以它必须被转换成

很抱歉,我没有仔细阅读代码

        $scope.addition = function(number, multiplier)
        {
            return number + +multiplier;
        }

感谢@Artur指出这一点。

似乎问题的根源在于:

也请阅读本主题:

作为解决方法,您可以使用和提出的解决方案


不过,值得注意的是,需要解析为整数的是乘法器,而不是数字。请参阅我对您的问题的评论。

另一个快速解决方法是在加法之前将值乘以1。这将强制JavaScript将值从字符串转换为整数

例如:


{{value*1+10}}

No,它是作为字符串传递的乘数。这不能解决问题。但是这个假设大体上是正确的。返回数字++乘法器谢谢Artur。这是非常有帮助的,这应该是选择的答案。
        $scope.addition = function(number, multiplier)
        {
            return number + +multiplier;
        }