Java开发之道
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

陷阱3 零的危害——不慎使用八进制常量的危害

在Java中整数常量分八进制、十进制和十六进制三种,其中经常使用的是十进制整数,由于八进制整数常量与十进制整数非常相似,因此非常容易发生混淆,所以必须慎重使用整数常量。

示例:

    int num1 = 60;                       // 声明整型变量num1,其初始值为60
    int num2 = 80;                       // 声明整型变量num2,其初始值为80
    int num3 = num1 * num2;              // 计算60与80的乘积,并赋值给变量num3
    System. out. println (num3);          // 输出变量num3的值

说明

上面示例的目的是计算出十进制数60与80的乘积,因此输出num3的值是4800,这是正确的结果,也达到了预期的目的。

示例:

    int num1 = 060;                      // 声明整型变量num1,其初始值为八进制的60
    int num2 = 80;                       // 声明整型变量num1,其初始值为十进制的80
    int num3 = num1 * num2;              // 计算八进制60与十进制80的乘积,并赋值给变量num3
    System. out. println (num3);          // 输出变量num3的值

说明

上面示例的目的也是要计算十进制数60与80的乘积,由于手误,将十进制数的60错写成了八进制的060,而八进制的060相当于十进制数的48,因此输出num3的值不是4800,而是48与80的乘积,所以输出的是3840。

如果第二个示例计算的是金额,由于将十进制数错写成八进制数,可以想象损失的金额将是多么巨大!