이중 숫자가 정수로 올바르게 변환되지 않는 문제에 봉착했습니다.double에서 integer 로의 변환
cuberoot=10
a=9
왜 여기에 = 9가 아니라 10이 대소>
int x=1000;
double cuberoot=pow(x,(1/(double)3));
int a=cuberoot;
cout<<"cuberoot="<<cuberoot<<endl;
cout<<"a="<<a<<endl;
출력에서
?
이 문제의 해결책은 무엇입니까 ?? cuberoot
(10)에 매우 근접하지만 확실히 때문에
또한 나는 그것이 3 만 하지 4.
숫자에 작은 양수를 추가 한 다음 루트를 계산할 수 있습니다. 'x = 1000 + 0.05'와 같습니다. 그러면'a = 10'이됩니다. –
그것은'입방체 '가 아닙니다 - 그게 x^3이 될 것입니다 –