1

これは分かります:

35%10戻り値5

しかし、なぜ000000035%10戻るの9ですか?

Rubyも同じことをします。irbで確認しました。

番号を埋めている0を削除する必要がありますか?それを行うためのJava関数は何ですか?

4

2 に答える 2

3

数値リテラルの先行ゼロは、8進数を意味します。

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

他の利用可能なフォーマットについては、このページを参照してください。

于 2012-10-20T01:18:19.390 に答える
3

先行ゼロの後に8進数(from0から)を付けると、 8進数のリテラル7が作成されます。また、8進数は10進数であるため、余りはです。00000003529109

アップデート

文字列に「8進数リテラル」がある場合は、を使用するだけでInteger.parseInt、10進数として解析されます。

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