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

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

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

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

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

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

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

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

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

当然结果是不一样了

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

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