为什么在Java中012%10=0?

为什么在Java中012%10=0?,java,Java,我正在尝试下面的程序 int var = 012; int result = var % 10; 输出: result = 0 我无法理解为什么java不能将012视为12。在java中,以0开头的整数文本被解释为数字 因此,012是数字1 x 8+2=10(十进制),而不是12(十进制) 012%10==10%10==0,因为012是一个八进制数。请参阅重复链接。

我正在尝试下面的程序

int var = 012;
int result = var % 10;
输出:

result = 0

我无法理解为什么java不能将012视为12。

在java中,以
0
开头的整数文本被解释为数字

因此,
012
是数字1 x 8+2=10(十进制),而不是12(十进制)


012%10==10%10==0

,因为012是一个八进制数。请参阅重复链接。