Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
angularjs丢失十进制&;忽略负VAL_Angularjs - Fatal编程技术网

angularjs丢失十进制&;忽略负VAL

angularjs丢失十进制&;忽略负VAL,angularjs,Angularjs,我有一个简短的表格,其中的值需要求和,这样我可以用它们做数学运算。不管出于什么原因,通过输入收音机设置的值会将数字转换为字符串,而angularjs获得数字的唯一方法是使用math.round或math.floor。这两种方法都将分数转换成整数,所以我最终得到了一些奇怪的结果,比如.5,1和.5等于1,而不是2。即使我骗过一些事情去做整数,我也在尝试做负数,而那些似乎只是被跳过了 这是让我感到舒服的特殊部位。我已经把变量拼出来了,所以我可以在html中输出它们,但是最终版本将使用注释掉的行 $s

我有一个简短的表格,其中的值需要求和,这样我可以用它们做数学运算。不管出于什么原因,通过输入收音机设置的值会将数字转换为字符串,而angularjs获得数字的唯一方法是使用math.round或math.floor。这两种方法都将分数转换成整数,所以我最终得到了一些奇怪的结果,比如.5,1和.5等于1,而不是2。即使我骗过一些事情去做整数,我也在尝试做负数,而那些似乎只是被跳过了

这是让我感到舒服的特殊部位。我已经把变量拼出来了,所以我可以在html中输出它们,但是最终版本将使用注释掉的行

$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
。)