Integer ir=0626; 打印出406  难道是精度丢失?

解决方案 »

  1.   


    Java规范就是这样啊0x 开头数字是 16进制;
    0 开头数字是 8进制;你试试看:
      System.out.println(010); // 输出 8
    还可以试试看
      System.out.println(09); // 编译错误
      

  2.   


    Integer ir = Integer.valueOf("0626", 10);
    System.out.println(ir);
    Integer ir2 = Integer.parseInt("0626", 10);
    System.out.println(ir2);
      

  3.   


    正常数字,前面是不能带0的。你只能在输出的时候去考虑加 0 的问题。所以:
    Integer ir = 626;
    System.out.printf("%04d", ir); // 格式化数组,长度4,不足补0
      

  4.   


    能补的似乎不多,大概是:符号位、空格、0 具体自己查查JavaDoc吧。