excel vba округление числа

Функция появилась в Visual Basic 6.0

Функция Round служит для округления чисел до заданной точности (число значащих цифр в дробной части)
Функция Round(Number,2) эквивалентна функции Format(Number,»#.##»)

В результате действия функции возвращается округленное число, тип которого совпадает с типом переданного аргумента

Параметры

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

Категория
Математические функции

—>Счетчики : 24019 | —>Добавил : Serge_007

—>Всего комментариев : 4

Небольшая неточность в статье обнаружил. Можете, глянуть, пожалуйста?

«Функция Round(Number,2) эквивалентна функции Format(Number,»#.##»)»
Не эквивалентна, увы: Round(2.545, 2) = 2, 54 ; Format(2.545, «#.##») = 2,55
В Round(VBA) используется «банкирское» округление, не арифметическое.
Думаю, стоит уточнить все описание функции. И отдельно отметить, что Round(Excel) и Round(VBA) отличаются.

Возвращает число, округленное до указанного количества десятичных разрядов. Returns a number rounded to a specified number of decimal places.

Синтаксис Syntax

Round (круглый ) (Expression, [ нумдеЦималплацес ]) Round(expression, [ numdecimalplaces ])

Синтаксис функции Round содержит следующие элементы: The Round function syntax has these parts:

Часть Part Описание Description
выражение expression Обязательная часть. Required. Числовое выражение, которое округляется. Numeric expression being rounded.
нумдеЦималплацес numdecimalplaces Необязательно. Optional. Число, которое указывает, сколько разрядов должно быть после округления. Number indicating how many places to the right of the decimal are included in the rounding. Если этот элемент пропущен, функция Round возвращает целые числа. If omitted, integers are returned by the Round function.

Эта функция VBA возвращает нечто, которое обычно называется округлением банковских средств. This VBA function returns something commonly referred to as bankers rounding. Поэтому перед использованием этой функции Будьте внимательны. So be careful before using this function. Для получения более предсказуемых результатов используйте функции » круглые функции листа » в Excel VBA. For more predictable results, use Worksheet Round functions in Excel VBA.

Пример Example

См. также See also

Поддержка и обратная связь Support and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

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

Первый способ округления при помощью функции int().

Данная функция выводит целое значение до запятой. При округлении отрицательных чисел int округляет десятичную дробь до большего целого значения.
Например: число Пи с минусом после округления — int (-3.1415926535 ) будет равно 4 (четырем целым).

Второй способ округление при помощи функции fix()

происходит аналогично с int . Отличается эта функция тем, что округляет отрицательные числа до меньшего значения. Так округлённое число Пи со знаком минус будет fix( -3.1415926535) = 3.
Если требуется не просто убрать дробную часть, а округлить до целого числа, можно использовать следующую функцию cint().
Пример:
Cint(fix( -3.1415926535)) = 3
Cint(int( -3.1415926535)) = 3

Как округлять до десятых и сотых (один и два знака после запятой, соответственно).

Для округления до десятых следует умножить переменную на 10 (десять), после чего округлить до целых и разделить на 10 (десять).
Пример:
Cint(int( -3.1415926535*10))/10 = 3.1
Cint(fix( -3.1415926535*10))/10 = 3.1

Для округления до сотых следует проделать ту же самую операцию, только умножать и делить не на 10, а на 100.
Пример:
Cint(int( -3.1415926535*100))/100 = 3.14
Cint(fix( -3.1415926535*100))/100 = 3.14

Пример кода округляющего значения из textbox, запускающийся нажатием кнопки CommandButtom1:

Private sub CommandButtom1_click()
textbox2.value = Cint(int(textbox1.value *100))/100
END SUB

Видео с примером работы макроса:

Как видите, ничего сложного в округлении чисел в vba Excel нет. Удачи Вам в изучении программы

Похожее:

  1. Макрос определяющий пустая ли ячейка или заполненная в VBA ExcelМакрос проверки заполнения ячеек. Периодически при создании.
  2. Функция VAL в VBA Excel или как преобразовать TextBox в число (цифру).Использования функции преобразования текста в число в.
  3. Макрос для быстрой замены формул на значения (числа) в выделенных ячейках документа Excel.Когда удобно менять формулы на значения нажатием.

Округление значений в коде VBA в Excel. Функции int () и fix().: 1 комментарий

Cint(int(-3.1415926535*100))/100 = 3.1
А это надёжно? Я вместо сотней поставил 1000 и в одном из случаев произошла ошибка переполнения. Опять поставил сотни.

Оцените статью