Как округлить числа с плавающей запятой до ближайшего целого числа в C? - PullRequest
7 голосов
/ 03 апреля 2010

Есть ли способ округлить числа в C?

Я не хочу использовать потолок и пол. Есть ли другая альтернатива?

Я наткнулся на этот фрагмент кода, когда гуглил ответ:

(int)(num < 0 ? (num - 0.5) : (num + 0.5))

Приведенная выше строка всегда печатает значение как 4, даже если число с плавающей запятой = 4.9.

Ответы [ 11 ]

0 голосов
/ 03 апреля 2010

Попробуйте переместить скобки вышеупомянутого решения так, чтобы оно гласило:

(int)(num < 0) ? (num - 0.5) : (num + 0.5)

Используя num как 4.9, он округляется до 5 на моей машине.

...