C中的隐式转换

时间:2015-08-29 15:53:48

标签: c implicit-conversion

隐式类型转换如何在以下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;
       };
     }]);
   })

1 个答案:

答案 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