可能重复:
09 不被识别,而 9 被识别
只是想知道,当我声明以下内容时:
public static final long __VERSIONCODE = 0L;
public static final long __VERSIONCODE = 9L;
这会起作用,但每当我尝试这个时:
public static final long __VERSIONCODE = 09L;
public static final long __VERSIONCODE = 08235L;
我收到一个错误(在 Eclipse 中):
“long 类型的文字 09L 超出范围。”
所以我认为那是因为它以零开头。
但后来我尝试将第二个数字降低为八:
public static final long __VERSIONCODE = 07235L;
这给了我没有错误。
然后:
public static final long __VERSIONCODE = 07239L;
也给了我一个错误。
所以我真的不明白我可以将哪些值分配给 long 而我不能。为什么我会收到此错误?(其实只是我很好奇,我也可以只用一个String作为我的版本代码)。
另外,我忘了提到使用双精度而不是长整数的行为完全相同。