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