これは愚かな質問のように感じますが、Javaのドキュメントのどこにでも答えが見つかりません。 2つのintを宣言して分割すると、どういうことが起こっていますか?最初にfloats/doubles
に変換され、分割されてからinteger
にキャストされるか、または整数として除算されますか?Javaの整数除算
また、純粋に実験から、整数除算は答えをゼロに向かって丸めるように見える(すなわち、3/2 = 1
および-3/2 = -1
)。私はこれを信じていますか?
これは愚かな質問のように感じますが、Javaのドキュメントのどこにでも答えが見つかりません。 2つのintを宣言して分割すると、どういうことが起こっていますか?最初にfloats/doubles
に変換され、分割されてからinteger
にキャストされるか、または整数として除算されますか?Javaの整数除算
また、純粋に実験から、整数除算は答えをゼロに向かって丸めるように見える(すなわち、3/2 = 1
および-3/2 = -1
)。私はこれを信じていますか?
整数演算で分割されています。したがって、整数a
を整数b
で割り算すると、b
はa
に何回入られますか?またa % b
はあなたに部門の残りの部分を与えます。 。
「それはダブルスにint型をautoconvertsそれにはint型を使用すると、短いまたはバイト算術演算を行いたい時に一定の迷惑なキャストを必要とし、関与していなくてもint型にショートパンツやバイトをautoconverts:だから(a/b) * b + a % b = a
Javaは自動変換のタイプを行います。ボクシングとオートボクシングのために、プリミティブをラッパーに、またその逆に自動変換します。 " - user2357112
Java は指定なしで何かをキャストします。
でもまだinteger/integer = integer
です。
また、結果は常に切り捨てられます。したがって、結果がfloatとして0.999999の場合、整数除算は0を返します。
いいえ、常に*の方向に丸めます。 –
私はそれを意味した、ごめんね –
私はあなたが切り捨てを意味すると信じています –
変換が行われません。それらはintとして分割されます。そして '-3/2 == -1'。 –
http://docs.oracle.com/javase/specs/jls/se8/html/jls-4.html#jls-4.2.2 – azurefrog
単純な考え方は分割されており、完全なintは切り捨てられます。 –