重複の可能性:
なぜ (360 / 24) / 60 = 0 … Java で
Java で float と long に問題がある
float f = 0.100f;
f = 3/180;
現時点では、オブジェクトとその属性を使用してこのようなことをしようとしていますが、この最も単純な形式でさえ、私のプログラムは 0.0.0 を返します。
私はLongsでこれを試しましたが、それでも同じ結果が得られました。長い一日だったし、単純なことかもしれないが、私は壁にぶつかっている.
重複の可能性:
なぜ (360 / 24) / 60 = 0 … Java で
Java で float と long に問題がある
float f = 0.100f;
f = 3/180;
現時点では、オブジェクトとその属性を使用してこのようなことをしようとしていますが、この最も単純な形式でさえ、私のプログラムは 0.0.0 を返します。
私はLongsでこれを試しましたが、それでも同じ結果が得られました。長い一日だったし、単純なことかもしれないが、私は壁にぶつかっている.
あなたの式3/180
は整数除算を実行しており、それを float にキャストしていますf
。整数除算では、3/180
が返さ0
れます。これが表示されているものです。
おそらくやりたいことは、数値に小数点を追加することです。f = 3.0/180.0;
3/180
整数除算です。
したがって、結果は整数に切り捨てられます。
浮動小数点除算を実行する必要があります。3/180f
整数除算を行います。したがって、フロートにキャストされた int を取得します。これを試して:
f = 3/180.0;
また
f = 3/180f;
試してみてください3.0/180
。そうしないと、2 つの整数を除算することになり、整数の切り捨てが発生します。整数除算を行うと、結果も浮動小数点数ではなく整数になります。