1

なぜMath.ceil(15/10)2.0ではなく1.0なのですか?代わりに実行するMath.ceil((double)15/10)と、期待どおりに2.0が得られます。

4

1 に答える 1

5

整数を別の整数で割ると整数が得られるため:15/10is 1

仕様から:

整数の除算は0に丸められます。つまり、バイナリ数値昇格(§5.6.2)の後に整数であるオペランドnおよびdに対して生成される商は、| d・q|を満たしながら大きさが可能な限り大きい整数値qです。≤|n|。さらに、|n|のときqは正です。≥|d| nとdの符号は同じですが、|n|の場合qは負になります ≥|d| nとdの符号は反対です。

Math.ceil(15.0/10)またはを使用する必要がありますMath.ceil(15f/10)(最初のものはdoubleを使用し、2番目のものはfloatを使用します)。

于 2013-03-26T17:15:54.473 に答える