Conversión de doble a entero [duplicado]
Esta pregunta ya tiene una respuesta aquí:
C ++: ¿Cómo redondear un doble a un int? [duplicar 5 respuestasround () para flotante en C ++ 20 respuestasEstoy atrapado en un problema en el que el número doble no se está convirtiendo correctamente a entero.
En este caso ->
int x=1000;
double cuberoot=pow(x,(1/(double)3));
int a=cuberoot;
cout<<"cuberoot="<<cuberoot<<endl;
cout<<"a="<<a<<endl;
Salida
cuberoot=10
a=9
¿Por qué aquí a = 9 y no 10?
¿¿Alguna solución a este problema?
Además, no quiero redondear el valor ... si a = 3.67, entonces debería convertirse a 3 solamente y no a 4.