6

Math.round(1/2)Java で int または double として宣言する必要がありますか? どちらも正しい場合、どちらがより正しいですか?

また、なぜ Eclipse が Math.round(1/2) = 0.0 であるのに Math.round(0.5) = 1.0 と言っているのですか?

どんな助けでも大歓迎です!

4

2 に答える 2

14

コンパイラは、式 1/2 を評価することから始めます。これらの数値は両方とも整数であるため、整数演算を行います。整数では、1 を 2 で割ると 0 になります。次に、Math.round() に渡すために 0 を double にキャストします。

正しい答えが必要な場合は、double を渡す必要があります。これは、1/2 の代わりに 1.0/2.0 を使用して行うことができます。

于 2011-09-17T23:55:03.753 に答える
6

1/2は整数式なので 0 です。

浮動小数点値が必要な場合は、1.0/2.0(または単に1./2) と言います。

于 2011-09-17T23:53:53.810 に答える