0

重複の可能性:
なぜ (360 / 24) / 60 = 0 … Java で

Java で float と long に問題がある

float f = 0.100f;
f = 3/180;

現時点では、オブジェクトとその属性を使用してこのようなことをしようとしていますが、この最も単純な形式でさえ、私のプログラムは 0.0.0 を返します。

私はLongsでこれを試しましたが、それでも同じ結果が得られました。長い一日だったし、単純なことかもしれないが、私は壁にぶつかっている.

4

4 に答える 4

7

あなたの式3/180は整数除算を実行しており、それを float にキャストしていますf。整数除算では、3/180が返さ0れます。これが表示されているものです。

おそらくやりたいことは、数値に小数点を追加することです。f = 3.0/180.0;

于 2013-01-30T18:36:07.693 に答える
3

3/180整数除算です。
したがって、結果は整数に切り捨てられます。

浮動小数点除算を実行する必要があります。3/180f

于 2013-01-30T18:35:05.400 に答える
3

整数除算を行います。したがって、フロートにキャストされた int を取得します。これを試して:

f = 3/180.0;

また

f = 3/180f;
于 2013-01-30T18:35:11.227 に答える
3

試してみてください3.0/180。そうしないと、2 つの整数を除算することになり、整数の切り捨てが発生します。整数除算を行うと、結果も浮動小数点数ではなく整数になります。

于 2013-01-30T18:35:52.003 に答える