Возможный дубликат:
round() для float в С++
У меня есть двойной (назовите его x), который должен быть 55, но на самом деле сохранен как 54.999999999999943157, который я только что понял.
Итак, когда я делаю
double x = 54.999999999999943157;
int y = (int) x;
y = 54 вместо 55!
Это озадачило меня в течение долгого времени. Как мне его правильно округлить?