なぜMath.ceil(15/10)
2.0ではなく1.0なのですか?代わりに実行するMath.ceil((double)15/10)
と、期待どおりに2.0が得られます。
質問する
391 次
1 に答える
5
整数を別の整数で割ると整数が得られるため:15/10
is 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 に答える