0
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

どうもありがとう!

4

7 に答える 7

5
1 / 10

これは整数除算であり、整数除算の結果は 0 です。次に、0 * 3 = 0 です。

二重リテラルを使用できます。

1.0 / 10.0
于 2012-08-24T08:14:39.053 に答える
1

1/10

この行は0.so0* 3=0を返します。int代わりにdoubleを使用します

于 2012-08-24T08:14:27.777 に答える
1

試す:

int d = (int) (((double)4/10)*3);
于 2012-08-24T08:15:36.550 に答える
0

a と b の両方が整数であるため、出力も int になり、1/10 が 0 になり、0*3=0 になります。

于 2012-08-24T08:14:44.670 に答える
0

浮動小数点表現を使用して計算を実行する必要があります。次に、結果を整数にキャストできます。

于 2012-08-24T08:15:44.413 に答える
0

これは機能します

int a = 1;
int b = 10;
int c = 3;    
int d = (1*3/10);    
System.out.println(d);
于 2012-08-24T08:21:26.857 に答える
0

質問で切り上げ/切り捨てについて言及していることに注意してください。

ここではMath.round()が役に立ちます。

引数に最も近い long を返します。結果は、1/2 を加算し、結果の下限を取り、結果を long 型にキャストすることにより、整数に丸められます。

于 2012-08-24T08:17:37.550 に答える