Vba excel отбросить дробную часть

Access для Microsoft 365 Access 2021 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Еще…Меньше

Возвращает целую часть числа.

Синтаксис

Int
(

число

)

Fix(

число

)

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

Замечания

Функции Int и Fix удаляют дробную часть числа и возвращают полученное целое значение.

Различие между функциями Int и Fix состоит в том, что при отрицательном значении числа функция Int возвращает первое отрицательное целое число, не превышающее число, а функция Fix — первое отрицательное целое число, которое больше числа или равно ему. Например, функция Int преобразует -8,4 в -9, а Fix преобразует -8,4 в -8.

Функция Fix(число) вычисляется следующим образом:

Sgn(number) * Int(Abs(number))


Примеры запросов


Выражение


Результаты:

SELECT Int([Discount]) AS Expr1 FROM ProductSales;

Удаляет дробную часть всех значений в поле «Скидка» и возвращает итоги для всех значений. Для отрицательных дробей «Int» возвращает первое отрицательное integer, меньшее или равное числу. Например, для значения скидки «-223,20» возвращается значение -224,00.

SELECT Fix([Discount]) AS Expr1 FROM ProductSales;

Удаляет дробную часть всех значений в поле «Скидка» и возвращает итоги для всех значений. Для отрицательных дробей «Исправить» возвращает первое отрицательное integer, большее или равное числу. Например, для значения скидки «-223,20» возвращается значение -223,00.

Пример VBA

Примечание: В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.

В данном примере показано, как функции Int и Fix возвращают целые части чисел. Если значением аргумента является отрицательное число, функция Int возвращает первое отрицательное целое число, не превышающее его, а функция Fix — первое отрицательное целое число, которое больше этого значения или равно ему.

Dim MyNumber
MyNumber = Int(99.8) ' Returns 99.
MyNumber = Fix(99.2) ' Returns 99.
MyNumber = Int(-99.8) ' Returns -100.
MyNumber = Fix(-99.8) ' Returns -99.
MyNumber = Int(-99.2) ' Returns -100.
MyNumber = Fix(-99.2) ' Returns -99.

Нужна дополнительная помощь?

Возвращение целой части дробного десятичного числа с помощью функций Int и Fix в VBA Excel. Синтаксис, правила округления, примеры.

Int – это функция, которая удаляет дробную часть исходного числа и возвращает целое число меньшее или равное исходному числу.

Синтаксис:

Функция Fix

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

Другими словами, функция Fix просто отбрасывает дробную часть исходного числа, возвращая целую часть без каких-либо преобразований (смотрите примеры).

Синтаксис:

Примеры

Сходство и различие функций Int и Fix на примерах:

MsgBox Int(9.1) ‘Результат: 9

MsgBox Fix(9.1) ‘Результат: 9

MsgBox Int(9.9) ‘Результат: 9

MsgBox Fix(9.9) ‘Результат: 9

MsgBox Int(9.1) ‘Результат: -10

MsgBox Fix(9.1) ‘Результат: -9

MsgBox Int(9.9) ‘Результат: -10

MsgBox Fix(9.9) ‘Результат: -9


Главная » Функции VBA »

28 Апрель 2011              129135 просмотров

  • ABS() — эта функция возвращает абсолютное значение переданного ей числа (то же число, но без знака). Например, ABS(3) и ABS(-3) вернут одно и то же значение 3.
  • Int(), Fix() и Round()позволяют по разному округлять числа:
    • Int() возвращает ближайшее меньшее целое;
    • Fix() отбрасывает дробную часть;
    • Round() округляет до указанного количества знаков после запятой.

    Однако Round может вернуть не совсем ожидаемый результат, т.к. функция применяет финансовое округление. По правилам данного округления если за последней к округлению цифрой стоит 5, то округляемую цифру увеличивают в том случае, если она нечетная и уменьшают, если четная.
    Математическое же округление всегда округляет цифру в большую сторону, если за ней идет цифра 5 и выше, и отбрасывает остаток если 4 и меньше.
    Т.е. если мы выполним такую строку кода

    то результатом будет 2,5, хотя предполагалось получить 2,51. Поэтому порой для округления лучше использовать Format:

        MsgBox Format(2.505, "#,##0.00")

    но в этом случае мы получим не число в чистом виде, а текст. И если нужно именно число, то придется производить дополнительные преобразования:

        MsgBox CDbl(Format(2.505, "#,##0.00"))

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

        MsgBox Application.Round(2.505, 2)

    Но здесь стоит учитывать, что это не чистый VB и этот метод сработает только в Excel, т.к. по сути мы обращаемся к встроенной в Excel функции округления ОКРУГЛ(ROUND), которая применяет именно математическое округление.

  • Rnd и команда Randomize используются для получения случайных значений (очень удобно для генерации имен файлов и в других ситуациях). Перед вызовом функции Rnd() необходимо выполнить команду Randomize для инициализации генератора случайных чисел.
        Dim lRundNum As Long, lMinNum As Long, lMaxNum As Long
        lMinNum = 1: lMaxNum = 100
        Randomize
        lRundNum = Int(lMinNum + (Rnd() * lMaxNum))
        MsgBox lRundNum
  • Sgn() — позволяет вернуть информацию о знаке числа. Возвращает 1, если число положительное, -1, если отрицательное и 0, если проверяемое число равно 0.
  • Mod() — Делит два числа и возвращает только остаток. Например, выражение 8 Mod 3 вернет число 2, т.к. без остатка(в виде дроби у результата деления) 8 делится на 3 только до 2-х(8 / 3 = 2,66666666666667).
    При этом функция Mod учитывает и знак числа — если первое число или оба числа отрицательные, то результатом будет отрицательное число. Если же отрицательное только второе число — то результат будет положительным числом.
    При попытке получить остаток при делении чисел с плавающей запятой результат может быть не тем, который ожидается, потому что перед выполнением деления оба числа округляются по математическим законам(5 и выше до большего, 4 и ниже — до меньшего). Например, выражение 8 Mod 3.5 вернет 0, а выражение 8 Mod 3.4 — 2.

Функция Fix

Fix(Number)

Функция Fix(Fixed) отбрасывает дробную часть числа и возвращает целое значение. Функция схожа с функцией Int. Различие между функциями Int и Fix состоит в том, что для отрицательного значения аргумента число функция Int возвращает ближайшее отрицательное целое число, меньшее либо равное указанному, а Fix ближайшее отрицательное целое число, большее либо равное указанному. Например, функция Int преобразует -8.4 в -9, а функция Fix преобразует -8,4 в -8.

Выражение Fix(Number) эквивалентно следующему:
Sgn(Number) * Int(Abs(Number))

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

Функция возвращает значение типа, совпадающего с типом аргумента, которое содержит целую часть числа

Параметры

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

Примечание
Если значение аргумента не попадает в диапазон допустимых значений Double, то генерируется ошибка стадии выполнения Overflow
Если аргумент имеет тип данных String, то он должен представлять собой число, иначе генерируется ошибка стадии выполнения Type mismastch

Пример

' В примере показано,
' как функции Int и Fix возвращают целые части чисел.
' В случае отрицательного аргумента Int возвращает
' ближайшее отрицательное целое число,
' меньшее либо равное указанному,
' а Fix ближайшее отрицательное целое число,
' большее либо равное указанному

Dim MyNumber
MyNumber = Int(99.8) ' Возвращает 99
MyNumber = Fix(99.2) ' Возвращает 99

MyNumber = Int(-99.8) ' Возвращает -100
MyNumber = Fix(-99.8) ' Возвращает -99

MyNumber = Int(-99.2) ' Возвращает -100
MyNumber = Fix(-99.2) ' Возвращает -99

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

For positive values, VBA offers Int() and Fix() which are functionally equivalent to Math.floor(). However, for negative values, only Int() is functionally equivalent to Math.floor(). The VBA function Fix() might be what you want if you are only interested in getting the value that is on the left side of the decimal point.

Math.floor(2.8) == 2
Int(2.8) == 2
Fix(2.8) == 2

Math.floor(-2.8) == -3
Int(-2.8) == -3
Fix(-2.8) == -2

Office VBA Reference

Int, Fix Functions

Returns the integer portion of a number.

Syntax

Int(number)

Fix(number)

The required number argument is a Double or any valid numeric
expression. If number contains Null, Null is returned.

Remarks

Both Int and Fix remove the fractional part of number and return the
resulting integer value.

The difference between Int and Fix is that if number is negative, Int
returns the first negative integer less than or equal to number,
whereas Fix returns the first negative integer greater than or equal
to number. For example, Int converts -8.4 to -9, and Fix converts -8.4
to -8.

Fix(number) is equivalent to:

Sgn(number) * Int(Abs(number))

Понравилась статья? Поделить с друзьями:
  • Vba excel остановить процедуру
  • Vba excel остановить выполнение цикла
  • Vba excel остановить выполнение программы
  • Vba excel ориентация текста
  • Vba excel округлить до сотых