0

float値の簡単な計算を試みていますが、出力が適切ではありません

Log.i("100/50", Float.toString(100/50));
Log.i("100/100", Float.toString(100/100));
Log.i("100/250", Float.toString(100/250));
Log.i("1/5", Float.toString(1/5));

logcat出力

11-10 23:36:23.677: I/100/50(28562): 2.0
11-10 23:36:23.677: I/100/100(28562): 1.0
11-10 23:36:23.685: I/100/250(28562): 0.0
11-10 23:38:23.685: I/1/5(28562): 0.0

フロートの単純な計算ですが、なぜそのような答えが表示されるのですか

4

4 に答える 4

4

int の代わりに float を使用する必要があります。Log.i("100/50", Float.toString(100f/50));これを試してみると、Java で float 演算が使用されます。そうしないと、int 除算が行われ、結果が float に変換されます。

于 2013-11-11T06:54:52.850 に答える
1

このようにしてください

Log.i("100/250", Float.toString(100f/250f));
Log.i("1/5", Float.toString(1f/5f));

出力は

11-11 12:25:32.198: I/100/250(351): 0.4
11-11 12:25:32.208: I/1/5(351): 0.2

Float.toString は入力浮動小数点を取ります

public static String toString (float f)

where f is the float to convert to a string.

詳細については、開発者の Web サイトを参照してください。

于 2013-11-11T06:56:49.510 に答える
0

2 つの整数の除算を実行しています。したがって、デフォルトの出力は整数になります。代わりに、(float)100/250 などの float に被除数を型キャストしてみてください。出力は float になり、適切な結果が得られます。

たとえば、100/250 の代わりに (float)100/250 または 100f/250 を試してください。

于 2013-11-11T06:57:08.580 に答える
0

このコードを使用します。

Log.i("100/50", Float.toString(100/50f)); Log.i("100/100", Float.toString(100/100f)); Log.i("100/250", Float.toString(100/250f)); Log.i("1/5", Float.toString(1/5f));

それがあなたのために働くことを願っています。

于 2013-11-11T06:54:36.077 に答える