int p = 6;
System.out.println(_nums.size() + ", " + p);
64, 6
왜 012 대신에 이 0.9 대신 0.0입니까?나누기 후 이중 매개 변수는 0.0과 같습니다.
double result = (_nums.size() - p)/_nums.size();
int p = 6;
System.out.println(_nums.size() + ", " + p);
64, 6
왜 012 대신에 이 0.9 대신 0.0입니까?나누기 후 이중 매개 변수는 0.0과 같습니다.
double result = (_nums.size() - p)/_nums.size();
는 당신이 현재하고있는 것은 정수를 나누어 그대로 동일하며, 그 결과를 double에 캐스팅합니다. 그래서 작업이 지금이 바로 같은 동일합니다 : 당신이 분할 전에
int intermediate = ((_nums.size() - p)/_nums.size()); // This can only be an int (e.g. 0).
double result = (double) intermediate; // Now this is just the double value of that int (0.0).
정수와 "true"로 구분하려면, 단지 double
에 그들 중 하나를 캐스팅. 이렇게하면 부동 소수점 (double
) 입력이 있으므로 나누기 연산에 부동 소수점 산술을 사용하게합니다.
double result = (_nums.size() - p)/((double) _nums.size());
당신은 너무
double result = ((_nums.size() - p)/((double)_nums.size()));
double result = (_nums.size() - p)/_nums.size();
같은 부동 소수점 연산의 사용을 강제하는 것은
double result = (double) (int)(_nums.size() - p)/ (int) _nums.size();
which equals
=(double) 6/64;
=(double) 0
=0.0
, 0.9이 되려면 Henry Keiter가 말하는 것처럼해야합니다. – TheLostMind
정수부. –
비 정수 나누기 사용 방법은 무엇입니까? –
'(_nums.size() - p)/_ nums.size() 표현식 전체의 타입은'int'입니다. 그런 다음 그것을 double에 할당합니다. '(_nums.size() - (double) p)/_ nums.size()'만큼 피연산자를'double'으로 일찍 변환해야합니다. –