cmath — округление вверх и вниз числа переполнение стека

Я пытаюсь разрешить моей программе округлять число вверх и вниз соответственно.

Например, если номер 3.6моя программа должна округлить до ближайшего числа, равного 4, и если число 3.4, будет округлено до 3.

Я пытался использовать ceil Библиотека, чтобы получить в среднем 3 предмета.

results = ceil((marks1 + marks2 + marks3)/3)

Тем не менее ceil только округляет число вниз, но не сворачивает число.

Есть 1 алгоритм, на который я наткнулся

var roundedVal = Math.round(origVal*20)/20;

но я все еще не могу придумать формулу для какой-то проблемы.

4

Решение

std::ceil

округляет до ближайшего целого

std::floor

округляет до ближайшего целого

std::round

выполняет поведение, которое вы ожидаете

Пожалуйста, дайте пример использования с номерами, если это не дает вам то, что вам нужно!

11

Другие решения

Функция, которая вам нужна, называется круглый, хочешь верь, хочешь нет.

ceil округляет вверх, кстати. То есть с ближайшим большим целым числом. floor округляет вниз.

4

std::round может быть тот, который вы ищете. Однако имейте в виду, что он возвращает число с плавающей запятой. Вы можете попробовать lround или же llround чтобы получить результат в long или long long (C ++ 11).

http://en.cppreference.com/w/cpp/numeric/math/round

4

Вам не нужна функция для округления в C или C ++. Вы можете просто использовать простой трюк. Добавьте 0,5, а затем приведите к целому числу. Это, вероятно, все вокруг так или иначе.

double d = 3.1415;
double d2 = 4.7;
int i1 = (int)(d + 0.5);
int i2 = (int(d2 + 0.5);

i1 — 3, а i2 — 5. Вы можете проверить это сами.

4

В c ++, включая библиотеку cmath, мы можем использовать различные функции, которые округляют значение как вверх, так и вниз.

std::trunc

Это просто усекает десятичную часть, то есть цифры после десятичной точки независимо от того, что такое десятичная дробь.

std::ceil

Это используется для округления до ближайшего целочисленного значения.

std::floor

Это используется для округления до ближайшего целочисленного значения.

std::round

Это округляет до ближайшего целочисленного значения, в зависимости от того, какое из значений ближе всего, то есть оно может округляться вверх или вниз.

-1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector