Javascript AngularJS中的整数解析
我正在我们的一个应用程序中使用 在下面的代码中,当加载页面表达式加法编号时,valuetoadd正确解析并给出输出为1+1=2,但在更改输入时,它没有正确解析,并给出输出为“1+2=12” 我需要在哪里换车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&
<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;
}