隐式类型转换如何在以下c片段中发生?输出是什么?
var scotchApp = angular.module('scotchApp');
scotchApp.directive('homeData', function() {
return {
scope: {
info: '=fo'
},
templateUrl: 'homeDirective.html'
}
scotchApp.controller('MyFormCtrl', [function() {
this.user = {
name: '',
email: ''
};
this.register = function() {
// console.log('User clicked register', this.user);
alert(this.user.name + "-- " + this.user.email);
$scope.name = this.user.name;
};
}]);
})
答案 0 :(得分:1)
1/2是一个整数除以整数,得到一个整数值,即0(.5被截断)
1.0 / 2是整数除以double值。因此2(整数值)被提升为double类型,然后出现除法给出double值。所以结果值是0.5。
1.0 / 2.0导致双倍除以另一倍,结果在双重类型中仅为0.5。
最后所有这些都被添加到获得1.0的双重类型。然后将其转换为float类型,因为f是float类型变量。
此外,使用%d说明符打印双重类型值会导致未定义的行为。请参阅此post