1

我明白这一点:

35%10返回5

但是,为什么会000000035%10返回9

Ruby 做同样的事情。我检查了irb。

我应该去掉填充数字的 0 吗?执行此操作的 java 函数是什么?

4

2 回答 2

3

数字文字中的前导零表示八进制数。

000000035 = 035 = 3*8 + 5 = 29
29 % 10 = 9

有关其他可用格式,请参阅此页面

于 2012-10-20T01:18:19.390 回答
3

当您将前导零后跟八进制数字(从0to 7)时,您正在创建一个八进制文字。并且由于000000035八进制是29十进制,它的余数109

更新

如果您在字符串中有“八进制文字”,只需使用Integer.parseInt它,您就会将其解析为十进制。

assert Integer.parseInt("035") == 35;
于 2012-10-20T01:18:25.017 回答