Перейти к содержимому

Как в c округлить число до сотых

  • автор:

C++. Округление дробных чисел до сотых. Ума не приложу, есть ли не-велосипедный способ это сделать.

Как без строительства своих велосипедов, округлить, например, число 34.87612 до 34.88? Есть функция в стандартной библиотеке?

Лучший ответ

Нет и быть не должно. Вещественное число может быть представлено в экспоненциальной форме. Что вы там округлять собрались?

Остальные ответы
#include

double x = 5.5456475;
double a = SimpleRoundTo(x, -2);//a = 5.55

Либо
a = 34.87612
b = round( a * 100 ) / 100;
Похожие вопросы
Ваш браузер устарел

Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.

Функции округления

Возвращает наибольшее круглое число, которое меньше или равно, чем x. Круглым называется число, кратное 1 / 10N или ближайшее к нему число соответствующего типа данных, если 1 / 10N не представимо точно. N — целочисленная константа, не обязательный параметр. По умолчанию — ноль, что означает — округлять до целого числа. N может быть отрицательным.

Примеры: floor(123.45, 1) = 123.4, floor(123.45, -1) = 120.

x — любой числовой тип. Результат — число того же типа. Для целочисленных аргументов имеет смысл округление с отрицательным значением N (для неотрицательных N, функция ничего не делает). В случае переполнения при округлении (например, floor(-128, -1)), возвращается implementation specific результат.

ceil(x [ , N ] )​

Возвращает наименьшее круглое число, которое больше или равно, чем x. В остальном, аналогично функции floor, см. выше.

round(x [ , N ] )​

Округляет значение до указанного десятичного разряда.

Функция возвращает ближайшее значение указанного порядка. В случае, когда заданное число равноудалено от чисел необходимого порядка, для типов с плавающей точкой (Float32/64) функция возвращает то из них, которое имеет ближайшую чётную цифру (банковское округление), для типов с фиксированной точкой (Decimal) функция использует округление в бо́льшую по модулю сторону (математическое округление).

round(expression [, decimal_places]) 

Аргументы

  • expression — число для округления. Может быть любым выражением, возвращающим числовой тип данных.
  • decimal-places — целое значение.
    • Если decimal-places > 0 , то функция округляет значение справа от запятой.
    • Если decimal-places < 0 то функция округляет значение слева от запятой.
    • Если decimal-places = 0 , то функция округляет значение до целого. В этом случае аргумент можно опустить.

    Возвращаемое значение:

    Округлённое значение того же типа, что и входящее.

    Примеры​

    Пример использования с Float

    SELECT number / 2 AS x, round(x) FROM system.numbers LIMIT 3 
    ┌───x─┬─round(divide(number, 2))─┐ │ 0 │ 0 │ │ 0.5 │ 0 │ │ 1 │ 1 │ └─────┴──────────────────────────┘ 

    Пример использования с Decimal

    SELECT cast(number / 2 AS Decimal(10,4)) AS x, round(x) FROM system.numbers LIMIT 3 
    ┌──────x─┬─round(CAST(divide(number, 2), 'Decimal(10, 4)'))─┐ │ 0.0000 │ 0.0000 │ │ 0.5000 │ 1.0000 │ │ 1.0000 │ 1.0000 │ └────────┴──────────────────────────────────────────────────┘ 

    Примеры округления

    Округление до ближайшего числа.

    round(3.2, 0) = 3 round(4.1267, 2) = 4.13 round(22,-1) = 20 round(467,-2) = 500 round(-467,-2) = -500 
    round(3.5) = 4 round(4.5) = 4 round(3.55, 1) = 3.6 round(3.65, 1) = 3.6 

    Смотрите также

    roundBankers​

    Округляет число до указанного десятичного разряда.

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

    Банковское округление (англ. banker's rounding) — метод округления дробных чисел. Если округляемое число равноудалено от соседних чисел, то оно округляется до ближайшей чётной цифры заданного десятичного разряда. К примеру, 3,5 округляется до 4, а 2,5 до 2. Этот метод округления, используемый по умолчанию для чисел с плавающей запятой, определён в стандарте [IEEE 754](https://en.wikipedia.org/wiki/IEEE_754#Roundings_to_nearest). Функция [round](#rounding_functions-round) также округляет числа с плавающей запятой по этому методу. Функция `roundBankers` округляет не только числа с плавающей запятой, но и целые числа методом банковского округления, например, `roundBankers(45, -1) = 40`. 

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

    Пример суммирования чисел 1.5, 2.5, 3.5 и 4.5 с различным округлением:

    • Без округления: 1.5 + 2.5 + 3.5 + 4.5 = 12.
    • Банковское округление: 2 + 2 + 4 + 4 = 12.
    • Округление до ближайшего целого: 2 + 3 + 4 + 5 = 14.

    Синтаксис

    roundBankers(expression [, decimal_places]) 

    Аргументы

    • expression — число для округления. Может быть любым выражением, возвращающим числовой тип данных.
    • decimal-places — десятичный разряд. Целое число.
      • decimal-places > 0 — функция округляет значение выражения до ближайшего чётного числа на соответствующей позиции справа от запятой. Например, roundBankers(3.55, 1) = 3.6 .
      • decimal-places < 0 — функция округляет значение выражения до ближайшего чётного числа на соответствующей позиции слева от запятой. Например, roundBankers(24.55, -1) = 20 .
      • decimal-places = 0 — функция округляет значение до целого. В этом случае аргумент можно не передавать. Например, roundBankers(2.5) = 2 .

      Возвращаемое значение

      Округлённое значение по методу банковского округления.

      Пример использования

       SELECT number / 2 AS x, roundBankers(x, 0) AS b fROM system.numbers limit 10 
      ┌───x─┬─b─┐ │ 0 │ 0 │ │ 0.5 │ 0 │ │ 1 │ 1 │ │ 1.5 │ 2 │ │ 2 │ 2 │ │ 2.5 │ 2 │ │ 3 │ 3 │ │ 3.5 │ 4 │ │ 4 │ 4 │ │ 4.5 │ 4 │ └─────┴───┘ 

      Примеры банковского округления

      roundBankers(0.4) = 0 roundBankers(-3.5) = -4 roundBankers(4.5) = 4 roundBankers(3.55, 1) = 3.6 roundBankers(3.65, 1) = 3.6 roundBankers(10.35, 1) = 10.4 roundBankers(10.755, 2) = 10,76 

      Смотрите также

      roundToExp2(num)​

      Принимает число. Если число меньше единицы — возвращает 0. Иначе округляет число вниз до ближайшей (целой неотрицательной) степени двух.

      roundDuration(num)​

      Принимает число. Если число меньше единицы — возвращает 0. Иначе округляет число вниз до чисел из набора: 1, 10, 30, 60, 120, 180, 240, 300, 600, 1200, 1800, 3600, 7200, 18000, 36000. Эта функция специфична для Яндекс.Метрики и предназначена для реализации отчёта по длительности визита.

      roundAge(num)​

      Принимает число. Если число меньше 18 — возвращает 0. Иначе округляет число вниз до чисел из набора: 18, 25, 35, 45, 55. Эта функция специфична для Яндекс.Метрики и предназначена для реализации отчёта по возрасту посетителей.

      Округление числа до необходимого десятичного разряда

      Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Excel Mobile Еще. Меньше

      Если отображение ненужных разрядов вызывает появление знаков ######, или если микроскопическая точность не нужна, измените формат ячеек таким образом, чтобы отображались только необходимые десятичные разряды.

      Округление числа до ближайшей основной единицы

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

      С помощью кнопки

      1. Выделите ячейки, которые нужно отформатировать.
      2. Перейдите на главную >число и выберите Увеличить десятичное или Уменьшить десятичное число, чтобы отобразить больше или меньше цифр после запятой.

      Применение встроенного числового формата

      Группа «Число» на вкладке «Главная»

      1. Перейдите в раздел Главная >Число, щелкните стрелку рядом со списком числовых форматов, а затем выберите Дополнительные числовые форматы.
      2. В списке Категория в зависимости от типа имеющихся данных выберите Валюта, Учет, Процент или Научный.
      3. В поле Число десятичных знаков введите требуемое число знаков после запятой.

      Использование функции в формуле

      Округлите число до необходимого количества цифр с помощью функции ОКРУГЛ. Эта функция имеет только два аргумента (аргументы — это части данных, необходимые для выполнения формулы).

      • Первый аргумент — это число, которое необходимо округлить. Он может быть ссылкой на ячейку или числом.
      • Второй аргумент — это количество цифр, до которого необходимо округлить число.

      Предположим, что ячейка A1 содержит число 823,7825. Вот как можно округлить его.

      • Чтобы округлить до ближайшей тысячи
        • Введите =ОКРУГЛ(A1;-3), что равно 1000
        • Число 823,7825 ближе к 1000, чем к 0 (0 кратно 1000 )
        • В этом случае используется отрицательное число, поскольку округление должно состоятся влево от запятой. Такое же число применяется в следующих двух формулах, которые округляют до сотен и десятков.
        • Введите =ОКРУГЛ(A1;-2), что равно 800
        • Число 800 ближе к 823,7825, чем к 900. Наверное, теперь вам все понятно.
        • Введите =ОКРУГЛ(A1;-1), что равно 820
        • Введите =ОКРУГЛ(A1;0), что равно 824
        • Используйте ноль для округления числа до ближайшей единицы.
        • Введите =ОКРУГЛ(A1;1), что равно 823,8
        • В этом случает для округления числа до необходимого количества разрядов используйте положительное число. То же самое касается двух следующих формул, которые округляют до сотых и тысячных.
        • Введите =ОКРУГЛ(A1;2), что равно 823,78
        • Введите =ОКРУГЛ(A1;3), что равно 823,783

        Округлите число в большую сторону с помощью функции ОКРУГЛВВЕРХ. Она работает точно так же, как функция ОКРУГЛ, за исключением того, что она всегда округляет число в большую сторону. Например, если необходимо округлить число 3,2 до ноля разрядов:

        • =ОКРУГЛВВЕРХ(3,2;0), что равно 4

        Округлите число вниз с помощью функции ОКРУГЛВНИЗ. Она работает точно так же, как функция ОКРУГЛ, за исключением того, что она всегда округляет число в меньшую сторону. Например, необходимо округлить число 3,14159 до трех разрядов:

        • =ОКРУГЛВНИЗ(3,14159;3), что равно 3,141

        Совет: Чтобы познакомиться с другими примерами и поработать с ними в книге Excel Online, см. статьи Функция ОКРУГЛ,Функция ОКРУГЛВВЕРХ и Функция ОКРУГЛВНИЗ.

        Округление вверх, вниз или до четного или нечетного значения

        1. Щелкните пустую ячейку.
        2. На вкладке Формулы в разделе Функция нажмите кнопку Построитель формул.
        3. Выполните любое из описанных ниже действий.
        Задача В построителе формул найдите и дважды щелкните В разделе Аргументы
        Округление числа вверх РАУНДАП В поле number введите округляемую цифру. В num_digits введите 0 , чтобы округлить число до ближайшего целого числа.
        Округление числа вниз ROUNDDOWN В поле number введите число, округляющееся вниз. В num_digits введите 0 , чтобы округлить число до ближайшего целого числа.
        Округление до четного числа ДАЖЕ В поле number введите округляемую цифру.
        Округление до нечетного числа СТРАННО В поле number введите округляемую цифру.
        Округление числа до ближайшего числа, кратного другому числу MROUND Щелкните поле рядом с полем Несколько, а затем введите число, для которого требуется ближайший кратный.

        Выбор фиксированного десятичного разделителя для цифр

        Стандартный десятичный разделитель для чисел можно настроить в параметрах Excel.

        1. Щелкните Параметры (с Excel 2010 до Excel 2016) или кнопку Microsoft Office >Параметры Excel (Excel 2007).
        2. В категории Расширенные параметры нужно выбрать пункт Параметры правки, а затем установить флажок Автоматическая вставка десятичной запятой.
        3. В поле Число знаков после запятой введите положительное число для количества цифр справа от запятой или отрицательное число для количества цифр слева от запятой.

        Примечание: Например, если ввести 3 в поле Число знаков после запятой, а затем — 2834 в ячейке, то значение будет равно 2,834. Если ввести –3 в поле Число знаков после запятой, а затем — 283 в ячейке, то значение будет равно 283000.

        Примечание: Установка флажка Фиксированный десятичный формат не влияет на уже введенные данные.
        Советы и рекомендации

        • Чтобы не использовать для числа параметр «Фиксированный десятичный формат», при его вводе добавьте десятичную запятую.
        • Чтобы удалить десятичные запятые из чисел, введенных с использованием фиксированного десятичного формата, сделайте следующее:
          1. Щелкните Параметры (с Excel 2010 до Excel 2016) или кнопку Microsoft Office >Параметры Excel (Excel 2007).
          2. В категории Расширенные параметры в разделе Параметры правки снимите флажок Автоматическая вставка десятичной запятой.
          3. В пустой ячейке введите число, соответствующее числу десятичных знаков, которое вы хотите удалить, например 10, 100 или 1000. Например, введите 100 в ячейке, если числа содержат два десятичных знака и вы хотите преобразовать их в целые числа.
          4. На вкладке Главная в группе Буфер обмена щелкните Копировать или нажмите клавиши CTRL+C.
          5. Выделите на листе ячейки, содержащие числа с десятичными разрядами, которые вы хотите изменить.
          6. На вкладке Главная в группе Буфер обмена щелкните стрелку под кнопкой Вставить и выберите команду Специальная вставка.
          7. В диалоговом окне Специальная вставка в разделе «Операция» выберите Умножить.

        Дополнительные сведения

        Вы всегда можете задать вопрос эксперту в Excel Tech Community или получить поддержку в сообществах.

        Как округлить число в sql

        Для округления используется функция ROUND() . Вызванная с одним аргументом она округляет число до ближайшего целого, например:

        SELECT ROUND( 10.4 ); 

        Значение 10.4 будет округлено до 10.

        Второй аргумент показывает до скольки знаков после запятой нужно округлять:

        SELECT ROUND( 10.812, 2 ); 

        В результате мы получим 10.81.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *