int a = 1; int b = 10; int c = 3; int d = (1/10)*3 System.out.println(d) Result: 0
この計算を機能させるにはどうすればよいですか?切り上げまたは切り下げ?(1/10)* 3 = 0.1 * 3 = 0.3 = 0および(4/10)* 3 = 0.4 * 3 = 1.2 = 1
どうもありがとう!
1 / 10
これは整数除算であり、整数除算の結果は 0 です。次に、0 * 3 = 0 です。
二重リテラルを使用できます。
1.0 / 10.0
1/10
この行は0.so0* 3=0を返します。intの代わりにdoubleを使用します
試す:
int d = (int) (((double)4/10)*3);
a と b の両方が整数であるため、出力も int になり、1/10 が 0 になり、0*3=0 になります。
浮動小数点表現を使用して計算を実行する必要があります。次に、結果を整数にキャストできます。
これは機能します
int a = 1;
int b = 10;
int c = 3;
int d = (1*3/10);
System.out.println(d);
質問で切り上げ/切り捨てについて言及していることに注意してください。
ここではMath.round()が役に立ちます。
引数に最も近い long を返します。結果は、1/2 を加算し、結果の下限を取り、結果を long 型にキャストすることにより、整数に丸められます。