Javascript 角度计算奇怪的行为

Javascript 角度计算奇怪的行为,javascript,css,angularjs,Javascript,Css,Angularjs,我使用angular.js计算高度,并将值添加到css样式标记中,它位于一个ng重复循环中 这一行的计算是错误的: <div style="height: {{60.0 / 100.0 * (100 - (100.0 / 0.27 * (item.wert + 1.0 - 0.95)))}}%; "> <p>{{item.wert}}</p> </div> {{item.wert} 当我将item.wert乘以因子1时,结果是正确的,

我使用angular.js计算高度,并将值添加到css样式标记中,它位于一个ng重复循环中

这一行的计算是错误的:

<div style="height: {{60.0 / 100.0 * (100 - (100.0 / 0.27 * (item.wert + 1.0 - 0.95)))}}%; ">
    <p>{{item.wert}}</p>
</div>

{{item.wert}

当我将item.wert乘以因子1时,结果是正确的, 所以这是可行的:

<div style="height: {{60.0 / 100.0 * (100 - (100.0 / 0.27 * ((item.wert * 1.0) + 1.0 - 0.95)))}}%; ">
    <p>{{item.wert}}</p>
</div>

{{item.wert}

有人知道我为什么要把它乘以1吗?
谢谢

我认为
item.wert
是一个字符串而不是int,所以当你做
*1
时,它实际上会把它变成int,你可以用它来计算。

项目的类型。wert取决于它里面存储的值。例如,以下代码打印
字符串

$scope.item={};
$scope.item.wert = "";
console.log(typeof($scope.item.wert)) //string;  
但以下代码打印号码:

$scope.item={};
$scope.item.wert = 2;
console.log(typeof($scope.item.wert)) //number;
因此,表达式的结果可能因存储在
item.wert中的值而异

添加(+):

// Number + String -> concatenation
5 + "foo" // "5foo"
 // Number - String -> NaN
    "foo" - 3 // NaN
减法(-):

// Number + String -> concatenation
5 + "foo" // "5foo"
 // Number - String -> NaN
    "foo" - 3 // NaN
乘法(*)


希望以上信息能回答您的问题。

item.wert的值是多少?它是一个浮点值,类似于0.2,但当我使用高度时,它是右凸的:{{item.wert}-,它可以工作到什么类型的
item.wert
?如果是字符串,javascript会执行concat操作,比如
“1”+1==“11”