【问题标题】:int i=99 is working however int i = 099 not workingint i=99 正在工作,但是 int i = 099 不工作
【发布时间】:2012-07-13 19:34:35
【问题描述】:

在Java中,我注意到当我写的时候

int i = 99;

它工作正常。但是当我说

int i = 099;

我得到一个例外:

java.lang.RuntimeException: Uncompilable source code - Erroneous tree type: <any>

在我的 IDE 中,我看到一个红点表示 integer number too large: 099

为什么没有编译? 099不就​​等于99吗?

【问题讨论】:

标签: java int runtime-error runtimeexception


【解决方案1】:

任何前导的0s 都会使Java 将该数字解释为八进制数。所以,010 实际上是8

System.out.println(010);

输出:

8

如您所知,89 不允许使用八进制数。

【讨论】:

  • @ThorbjørnRavnAndersen 是的,Java 的大部分语法都继承自 C :)
【解决方案2】:

这是一个八进制数。八进制数字以0 为前缀,以将它们与十进制和十六进制等其他值区分开来。

【讨论】:

    猜你喜欢
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 2014-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多