C#: как округлить целое число до ближайшей 1000

Remarks

The behavior of this method follows IEEE Standard 754, section 4. This kind of rounding is sometimes called rounding toward negative infinity.

Floor(Double)

Returns the largest integral value less than or equal to the specified double-precision floating-point number.

d

Double

A double-precision floating-point number.

Returns

Double

The largest integral value less than or equal to . If is equal to NaN, NegativeInfinity, or PositiveInfinity, that value is returned.

Remarks

The behavior of this method follows IEEE Standard 754, section 4. This kind of rounding is sometimes called rounding toward negative infinity. In other words, if is positive, any fractional component is truncated. If is negative, the presence of any fractional component causes it to be rounded to the smaller integer. The operation of this method differs from the Ceiling method, which supports rounding toward positive infinity.

Starting with Visual Basic 15.8, the performance of Double-to-integer conversion is optimized if you pass the value returned by the method to the any of the integral conversion functions, or if the Double value returned by is automatically converted to an integer with Option Strict set to Off. This optimization allows code to run faster — up to twice as fast for code that does a large number of conversions to integer types. The following example illustrates such optimized conversions:

  • Round

Floor(Decimal)

Returns the largest integral value less than or equal to the specified decimal number.

d

Decimal

A decimal number.

Returns

Decimal

The largest integral value less than or equal to . Note that the method returns an integral value of type Decimal.

Remarks

The behavior of this method follows IEEE Standard 754, section 4. This kind of rounding is sometimes called rounding toward negative infinity. In other words, if is positive, any fractional component is truncated. If is negative, the presence of any fractional component causes it to be rounded to the smaller integer. The operation of this method differs from the Ceiling method, which supports rounding toward positive infinity.

  • Round

242D — Dispute

Denote current value of counter number i as bi. Let’s describe an algorithm. It takes any counter i such that bi = ai and presses its button. The algorithm finishes if there is no such i.

Let’s proof correctness of the algorithm:

  1. Why does Valera win the game? Because there is no such counter which has bi = ai else we must press the button.

  2. Why doesn’t algorithm press some button multiple times? Because it presses button number i only if bi = ai, and after this pressing the value bi is increased and the equation will be true never.

  3. Why is the algorithm fast? Because of paragraph 2 it does no more n pressings which produces no more n + 2·m increases of the counters. We should use queue for fast seaching counters which has bi = ai like this: every time we change value of the counter numbered i we check equation bi = ai and if it’s true then we push value i to the queue. It’s easy to understand that all indexes i will be in queue no more one time.

Also these paragraphs proof that the answer always exists. You must print  - 1 never. The time is O(n + m).

Как округлить до целого числа в Excel?

Чтобы округлить до целого в большую сторону используем функцию «ОКРУГЛВВЕРХ». Чтобы округлить до целого в меньшую сторону используем функцию «ОКРУГЛВНИЗ». Функция «ОКРУГЛ» и формата ячеек так же позволяют округлить до целого числа, установив количество разрядов – «0» (см.выше).

В программе Excel для округления до целого числа применяется также функция «ОТБР». Она просто отбрасывает знаки после запятой. По сути, округления не происходит. Формула отсекает цифры до назначенного разряда.

Сравните:

Второй аргумент «0» — функция отсекает до целого числа; «1» — до десятой доли; «2» — до сотой доли и т.д.

Специальная функция Excel, которая вернет только целое число, – «ЦЕЛОЕ». Имеет единственный аргумент – «Число». Можно указать числовое значение либо ссылку на ячейку.

Недостаток использования функции «ЦЕЛОЕ» — округляет только в меньшую сторону.

Округлить до целого в Excel можно с помощью функций «ОКРВВЕРХ» и «ОКРВНИЗ». Округление происходит в большую или меньшую сторону до ближайшего целого числа.

Пример использования функций:

Второй аргумент – указание на разряд, до которого должно произойти округление (10 – до десятков, 100 – до сотен и т.д.).

Округление до ближайшего целого четного выполняет функция «ЧЕТН», до ближайшего нечетного – «НЕЧЕТ».

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

Почему Excel округляет большие числа?

Если в ячейки табличного процессора вводятся большие числа (например, 78568435923100756), Excel по умолчанию автоматически округляет их вот так: 7,85684E+16 – это особенность формата ячеек «Общий». Чтобы избежать такого отображения больших чисел нужно изменить формат ячейки с данным большим числом на «Числовой» (самый быстрый способ нажать комбинацию горячих клавиш CTRL+SHIFT+1). Тогда значение ячейки будет отображаться так: 78 568 435 923 100 756,00. При желании количество разрядов можно уменьшить: «Главная»-«Число»-«Уменьшить разрядность».

Анализ отклонений при округлениях в Excel на графиках

Пример 3. Имеем ряд действительных чисел. Необходимо построить на два графика (первый – на основе действительных чисел, второй – их округленных значений). Визуально определить расхождения построенных графиков.

Видим таблицу исходных данных:

Заполним таблицы целых чисел с использованием функции ЦЕЛОЕ:

Построим графики на основе имеющихся значений для визуального анализа отклонений:

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

242E — XOR on Segment

Let’s write numbers a1, a2, …, an as a table which has size n × 20, and bi, j is jth bit in ai. Then sum of numbers on segment [l, r] equals . The last notation helps us to process queries.

For fast implementation we should use 20 binary trees like cartesian trees or range trees. Every tree matchs one of bits (and matchs one of the columns of the table bi, j).

  1. calculation of sum is equal to counting 1-s from l-th to r-th.

  2. operation «xor» equals reversing all bits from l-th to r-th (i.e. changes to 1, 1 changes to ).

The first operation executes for all bit numbers, the second executes only for bits in which input number xi has ones.

These operations may be easy implemented with binary trees. The time is O(m·log(n)·20).

Функция ЦЕЛОЕ в Excel и особенности ее синтаксиса

Данная функция имеет следующую синтаксическую запись:

=ЦЕЛОЕ(число)

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

Примечания 1:

  1. Если в качестве аргумента функции будет передано нечисловое значение, результатом ее вычислений будут являться коды ошибок #ИМЯ? или #ЗНАЧ!.
  2. Если аргументом функции является значение, выраженное в процентах, перед операцией округления будет выполнена промежуточная операция по преобразованию в дробное число. Например, функция =ЦЕЛОЕ(99%) вернет значение 0 (нуль), поскольку перед округлением преобразует значение в 0,99. А значение в аргументе 111% вернет результат 1.
  3. При работе с числовыми данными из диапазона положительных чисел результаты выполнения функций ЦЕЛОЕ и ОТБР являются тождественными. Однако в случае отрицательных чисел результаты работы этих двух функций будут отличаться, поскольку ОТБР лишь отбрасывает дробную часть чисел, а не округляет до ближайшего меньшего значения.

Примечания 2:

  1. Если функция используется для целого числа, результатом ее выполнения будет являться то же самое целое число. Например, число 99 останется без изменений.
  2. При работе с отрицательными числами данная функция также выполняет округление в меньшую сторону. То есть, результатом вычисления =ЦЕЛОЕ(-5,7) будет являться число -6.
  3. Данная функция выполняет округление до ближайшего меньшего целого числа. Эту особенность необходимо учитывать во избежание серьезных погрешностей в расчетах. Например, по общепринятым правилам математики, при округлении некоторого числа до целого значения модуль разности последнего и первого должен быть минимальным (если округлить 2,3, то получим 2, если округлить 2,7, то получим 3). В случае работы функции имеем следующее значения в аргументе:
  • (2,3) вернет значение 2;
  • (2,7) также вернет значение 2.

Примеры расчетов с использованием функции ЦЕЛОЕ в Excel

Пример 1. Требуется определить остаток от деления двух действительных чисел с использованием Excel.

Заполним таблицу исходных данных:

Для решения поставленной задачи используем следующую формулу:

Описание аргументов:

  • B2 – делимое число;
  • B3 – делитель числа;
  • B2/B3 – операция деления делимого на делитель, результатом которой является дробное число, которое будет округлено до ближайшего целого функцией ЦЕЛОЕ.

То есть, остатком от деления 117 на 33 является число 18.

Примечание: в Excel существует функция для определения остатка от деления – ОСТАТ. Значит, записи «=B2-B3*(ЦЕЛОЕ(B2/B3))» и «ОСТАТ(117;33)» являются эквивалентными по смыслу. Функция ЦЕЛОЕ в данном примере была использована для наглядности.

Как округлить до целых в большую или меньшую сторону?

С помощью функции ОКРУГЛВВЕРХ и ОКРУГЛВНИЗ можно заставить Excel в принудительном порядке округлять в необходимом направлении. Как бы эти функции позволяют работать против правил округления. Например:

Функция ОКРУГЛВВЕРХ округляет в большую сторону. Допустим исходное значение 94,45 тогда ОКРУГЛВВЕРХ в необходимом нам направлении округления вверх возвращает 95:

=ОКРУГЛВВЕРХ(94,45;0) = 95

Функция ОКРУГЛВНИЗ округляет другое исходное числовое значение 94,55 и возвращает 94:

=ОКРУГЛВНИЗ(94,55;0) = 94

Внимание! Если вы используете округленные числа в ячейках для дальнейшего использования их формулах и вычислениях, тогда следует обязательно использовать функцию ОКРУГЛ (или ее модификации), а не формат ячеек. Потому как форматирование ячеек не изменяет числовое значение, а лишь только изменяет его отображение

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

Комментарии

Поведение этого метода соответствует стандарту IEEE 754, разделу 4.The behavior of this method follows IEEE Standard 754, section 4. Этот тип округления иногда называют округлением в сторону отрицательной бесконечности.This kind of rounding is sometimes called rounding toward negative infinity.

Floor(Double)

Возвращает наибольшее целое число, которое меньше или равно заданному числу с плавающей запятой двойной точности.Returns the largest integral value less than or equal to the specified double-precision floating-point number.

d

Double

Число двойной точности с плавающей запятой.A double-precision floating-point number.

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

Double

Наибольшее целое число, которое меньше или равно .The largest integral value less than or equal to . Если значение параметра равно NaN, NegativeInfinity или PositiveInfinity, возвращается это значение.If is equal to NaN, NegativeInfinity, or PositiveInfinity, that value is returned.

Примеры

В следующем примере показан метод и его отличие от метода .The following example illustrates the method and contrasts it with the method.

Комментарии

Поведение этого метода соответствует стандарту IEEE 754, разделу 4.The behavior of this method follows IEEE Standard 754, section 4. Этот тип округления иногда называют округлением в сторону отрицательной бесконечности.This kind of rounding is sometimes called rounding toward negative infinity. Иными словами, если положительное, любой дробный компонент усекается.In other words, if is positive, any fractional component is truncated. Если имеет отрицательное значение, присутствие любого компонента дробной части приводит к округлению его до меньшего целого числа.If is negative, the presence of any fractional component causes it to be rounded to the smaller integer. Операция этого метода отличается от метода Ceiling, который поддерживает округление в сторону положительной бесконечности.The operation of this method differs from the Ceiling method, which supports rounding toward positive infinity.

Начиная с Visual Basic 15,8, производительность преобразования типа «двойное в целое число» оптимизирована, если передать значение, возвращаемое методом , в любую из целочисленных функций преобразованияили значение Double, возвращаемое функцией , автоматически преобразуется в целое число с параметром Option , равным OFF.Starting with Visual Basic 15.8, the performance of Double-to-integer conversion is optimized if you pass the value returned by the method to the any of the integral conversion functions, or if the Double value returned by is automatically converted to an integer with Option Strict set to Off. Эта оптимизация позволяет коду выполняться быстрее — до двух раз быстрее для кода, который выполняет большое количество преобразований в целочисленные типы.This optimization allows code to run faster — up to twice as fast for code that does a large number of conversions to integer types. В следующем примере показаны оптимизированные преобразования:The following example illustrates such optimized conversions:

  • Round

Floor(Decimal)

Возвращает наибольшее целое число, которое меньше или равно указанному десятичному числу.Returns the largest integral value less than or equal to the specified decimal number.

d

Decimal

Десятичное число.A decimal number.

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

Decimal

Наибольшее целое число, которое меньше или равно .The largest integral value less than or equal to

Обратите внимание, что этот метод возвращает целочисленное значение типа Decimal.Note that the method returns an integral value of type Decimal

Примеры

В следующем примере показан метод и его отличие от метода .The following example illustrates the method and contrasts it with the method.

Комментарии

Поведение этого метода соответствует стандарту IEEE 754, разделу 4.The behavior of this method follows IEEE Standard 754, section 4. Этот тип округления иногда называют округлением в сторону отрицательной бесконечности.This kind of rounding is sometimes called rounding toward negative infinity. Иными словами, если положительное, любой дробный компонент усекается.In other words, if is positive, any fractional component is truncated. Если имеет отрицательное значение, присутствие любого компонента дробной части приводит к округлению его до меньшего целого числа.If is negative, the presence of any fractional component causes it to be rounded to the smaller integer. Операция этого метода отличается от метода Ceiling, который поддерживает округление в сторону положительной бесконечности.The operation of this method differs from the Ceiling method, which supports rounding toward positive infinity.

  • Round
Ссылка на основную публикацию