使用javascript进行计算时遇到问题。正如你在小提琴中看到的那样,答案显示四舍五入,没有小数,我不明白为什么。
我需要做些什么才能显示$ scope.total的小数?
var moment = angular.module('moment',[]);
moment.controller('momentCtrl', ['$scope', function($scope) {
$scope.val1 = 96;
$scope.val2 = 18;
$scope.val3 = Math.PI;
$scope.val4 = 13.5;
$scope.total = parseInt( $scope.val1 ) + parseInt( $scope.val2 ) - parseInt( $scope.val3 ) - parseInt( $scope.val4 );
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="moment" ng-controller="momentCtrl">
Value = {{total}} <br>
Should be something like 97.3584
</div>
答案 0 :(得分:2)
您正在使用parseInt()
删除小数,并且因为您的范围变量都已经是数字,所以它实际上没有任何贡献。如果您要确保输入是数字,则可以使用parseFloat()
。
对于HTML5中的早期输入保证,您可以使用<input type="number">
。它阻止用户甚至尝试输入非数字,这是一个很好的早期捕获(虽然您可能希望允许无效输入,因为您可以使用JS智能地决定如何通知用户关于什么是错的。)