Lance0512
兰斯
2011-03-09 11:05
浏览 173
已采纳

一个搞不懂得问题 请教高手

double value = 2555;
System.out.println(value);

double value = 02555;
System.out.println(value);

打印出来的结果不一样 原理什么

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • chenxiang105
    chenxiang105 2011-03-09 20:23
    已采纳

    至于进制的问题 很容易验证
    你只要定义 double value =02558;你看看报错不? 哈哈
    当然定义double value = 02777; 就行 这个时候是八进制的
    也就是最大你可以定义到. 07777777777 装满

    当然如果你在你的02555后面加个小数02555.0
    你就发现还是10进制了..

    除了double 其他的你也可以试试 ,前面加0之后的整数会被转成8进制
    ...

    点赞 评论
  • yanjinke
    yanjinke 2011-03-09 11:09

    double value = 2555; // 10进制
    double value = 02555; // 8进制
    double value = 0x2555; //16进制

    System.out.println(value); //按10进制值输出

    当然结果是不一样了

    点赞 评论
  • mougaidong
    turing-complete 2011-03-09 15:18

    这个就是编程语言的字面值问题了,就像Java语言里在双引号里面的字符串,编译器会当它是String类型的,而C++中编译器只能当它是char*类型的。
    楼上的码友说的得很正确啊

    点赞 评论
  • elegant_sun
    思想的浪潮 2011-03-09 15:31

    一个十进制数,一个八进制,结果当然不一样咯

    点赞 评论

相关推荐