Umwandlung von double in integer [duplizieren]

Diese Frage hat hier bereits eine Antwort:

C ++: Wie rundet man ein Double auf ein Int? [Duplikat 5 Antwortenround () für float in C ++ 20 answers

Ich stecke in einem Problem fest, bei dem die doppelte Zahl nicht richtig in eine ganze Zahl konvertiert wird.

In diesem Fall ->

int x=1000;

double cuberoot=pow(x,(1/(double)3));

int a=cuberoot;

cout<<"cuberoot="<<cuberoot<<endl;

cout<<"a="<<a<<endl;

Ausgabe

cuberoot=10
a=9

Warum hier a = 9 und nicht 10?

Jede Lösung für dieses Problem?

Auch ich möchte den Wert nicht runden..wenn a = 3.67, sollte er nur in 3 und nicht in 4 konvertiert werden.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage