округлить



Автор Иван Дробышев задал вопрос в разделе Другие языки и технологии

Округление в с++? и получил лучший ответ

Ответ от ?????? Зелёный змий ??????[гуру]
Для округления чисел в C++ удобнее всего использовать функции из стандартной библиотеки, подключив заголовок math.h или cmath. Если нужно округлить до ближайшего меньшего целого, применяется функция floor. Например, floor(2.8) вернет 2.0. Для округления до ближайшего большего целого используется функция ceil. В этом случае ceil(2.8) даст результат 3.0. Если требуется классическое математическое округление до ближайшего целого числа, лучше всего подходит функция round, доступная в современных стандартах C++. Она округляет 2.5 до 3.0, а 2.4 до 2.0. Реализовывать округление вручную через вычитание целой части и умножение на степени десятки не рекомендуется, так как стандартные функции работают надежнее и избавляют от ошибок с плавающей точкой. Для получения целочисленного результата значение после вызова функции можно явно привести к типу int.

Ответ от Никита Моисеев[гуру]
double x; double delta = x-(long)x; double tmp = ((long)(delta*1e+4))/10; delta = tmp - (long)tmp; if (delta >= 0.5 ) tmp += 1; x = (long)x+((long)tmp)*1e-3; P.S. выглядит не очень, но скорее всего работает

Ответ от Константин Лемешев[гуру]
Читай тут:
ссылка
То: Никита Моисеев
Месье знает толк в извращениях. Работоспособность не пр

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Округление в с++?
спросили в 706 год
как округлить десятичную дробь до единиц?
Пример. Округлить дробь 93,70584 до:
десятитысячных: 93,7058
тысячных: 93,706
сотых:
подробнее...

Как округлить 300 метров до десятков метров (как это записывается???)
300 это уже округлено, причем даже до сотен.
Вот если округлить 334 до десятков, то это
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:

Что значит "Запишите ответ с точностью до десятых"? Это имеется в виду округлить до десятых или отбросить знаки после?
Это значит, что если ответ до сотых и тысячных, то нужно отбросить эти значения и округлить число
подробнее...
спросили в Free Pascal
PASCAL - Мне необходимо округлить число в большую сторону
> то результат равен 0,02. а мне нужно любой результат округлять в большую сторону
Т. е.
подробнее...
Округление на Википедии
Посмотрите статью на википедии про Округление
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*