C ++: ¿Cómo redondear un doble a un int? [duplicar
Posible duplicado:
round () para flotante en C ++
Tengo un doble (llámelo x), destinado a ser 55 pero actualmente almacenado como 54.999999999999943157 que acabo de darme cuenta.
Así que cuando hago
double x = 54.999999999999943157;
int y = (int) x;
y = 54 en lugar de 55!
Esto me dejó perplejo durante mucho tiempo. ¿Cómo hago para redondear correctamente?