AngularJS简单的添加不起作用

时间:2014-04-29 19:47:06

标签: angularjs

我正在尝试使用以下代码进行简单的添加,但由于某种原因,结果是简单的字符串连接而不是算术添加。有人可以告诉我这里缺少什么以及如何解决这个问题?感谢

$scope.budget = localStorageService.get('budget'); //this returns 5000
$scope.toBeAdded = localStorageService.get('newAddition'); //this return 500

$scope.NewBudget = $scope.budget + $scope.toBeAdded; //return 5000500 instead of 5500

4 个答案:

答案 0 :(得分:1)

localStorage存储为字符串。如果需要整数,则需要使用返回值parseInt。例如:

$scope.budget = parseInt(localStorageService.get('budget'), 10); //this returns 5000
$scope.toBeAdded = parseInt(localStorageService.get('newAddition'), 10); //this return 500

$scope.NewBudget = $scope.budget + $scope.toBeAdded;

如果您期望十进制数,当然您需要使用parseFloat而不是parseInt。

答案 1 :(得分:1)

大概$ scope.budget和$ scope.toBeAdded作为字符串而不是整数返回;但是我不认为你已经分享了足够的代码来诊断原因。尝试转换:

$scope.NewBudget = Number($scope.budget) + Number($scope.toBeAdded)

它使用Number函数将字符串转换为数字。

答案 2 :(得分:1)

这样做:

$scope.budget = parseInt(localStorageService.get('budget'), 10);
$scope.toBeAdded = parseInt(localStorageService.get('newAddition'), 10); 

它将确保这些值作为整数传递。不要忘记parseInt()末尾的基数。

答案 3 :(得分:0)

你的变量可能是字符串。您可以使用Number(x)

将其转换为数字