angularjs丢失十进制&;忽略负VAL
我有一个简短的表格,其中的值需要求和,这样我可以用它们做数学运算。不管出于什么原因,通过输入收音机设置的值会将数字转换为字符串,而angularjs获得数字的唯一方法是使用math.round或math.floor。这两种方法都将分数转换成整数,所以我最终得到了一些奇怪的结果,比如.5,1和.5等于1,而不是2。即使我骗过一些事情去做整数,我也在尝试做负数,而那些似乎只是被跳过了 这是让我感到舒服的特殊部位。我已经把变量拼出来了,所以我可以在html中输出它们,但是最终版本将使用注释掉的行angularjs丢失十进制&;忽略负VAL,angularjs,Angularjs,我有一个简短的表格,其中的值需要求和,这样我可以用它们做数学运算。不管出于什么原因,通过输入收音机设置的值会将数字转换为字符串,而angularjs获得数字的唯一方法是使用math.round或math.floor。这两种方法都将分数转换成整数,所以我最终得到了一些奇怪的结果,比如.5,1和.5等于1,而不是2。即使我骗过一些事情去做整数,我也在尝试做负数,而那些似乎只是被跳过了 这是让我感到舒服的特殊部位。我已经把变量拼出来了,所以我可以在html中输出它们,但是最终版本将使用注释掉的行 $s
$scope.updateValue = function () {
var one = $window.Math.floor($scope.one);
var two = $window.Math.floor($scope.two);
var three = $window.Math.floor($scope.three);
$scope.perperson = (one + two + three);
//$scope.perperson = $window.Math.floor($scope.one + $scope.two + $scope.three);
$scope.population = $window.Math.floor($scope.perperson * $scope.total);
})
我怎样才能使数字保持分数的形式,并减去负数而不是忽略它们呢?这不是一个角度问题,而是一个JavaScript问题 要在JavaScript中将字符串转换为数字,可以使用:
parseFloat('1.4'); //1.4
parseInt('1.4'); //1
+'1.4'; //1.4 (+ works like shorthand for parseFloat)
除此之外,就角度而言,您在value=“1234”
中输入的任何内容都是字符串。。因为它是一根绳子
这是一个更新的plunker
啊哈,捷径是最棒的。非常感谢。我曾经尝试过使用parseInt,但我不知道我在做什么(或不做什么),它不起作用。更重要的是,如果我改用parseInt或parseFloat,这是否意味着我实际上不需要$window.Math.round位?是的,您不需要Math.round。这将把字符串转换成一个数字,然后对数字进行四舍五入。JavaScript中的所有数字都是64位浮点,并带有舍入错误。如果你想玩得开心,找个时间试试
.1+.2
。)