Распечатать страницу

Функции для числовых данных в Visual FoxPro

« Назад

Приведены в табл. 3.12.

Таблица 3.12

Функции для числовых данных

Функция

Описание и примеры

ABS(nExpression)

Возвращает абсолютное значение nExpression

? Abs(–25.2)    && Напечатает: 25.2

ACOS(nExpression)

Возвращает арккосинус (в радианах) вещественного аргумента nExpression, абсолютного величина которого не превышает 1.0. Диапазон изменения результата – [0, p]. Для преобразования радиан в градусы употребляется RTOD( )

ASIN(nExpression)

Возвращает арксинус (в радианах) вещественного аргумента nExpression, абсолютного величина которого не превышает 1.0. Диапазон изменения результата – [–p/2, +p/2]

ATAN(nExpression)

Возвращает арктангенс (в радианах) вещественного аргумента nExpression. Диапазон изменения результата – [–p/2, +p/2]

ATN2(nY, nX)

Возвращает арктангенс (в радианах) вещественного числа равного nX / nY. Диапазон изменения результата – [–p, +p]

BINTOC(nExpression
           
[, eFlags])

Преобразовывает целую величину nExpression в двоичную в символьном представлении. Тип результата – Character.
Параметр eFlags задает длину возвращаемой символьной строки, тип хранимого ей результата и определяет диапазон изменения nExpression; может принимать следующие значения:
·          1 – диапазон nExpression: –128 – 127;
·          2 –       "                                  "          –32,768 – 32,767;
·          4 –       "                                  "          –2,147,483,648 – 2,147,483,647;
·          8 – диапазон nExpression зависит от его типа. С таким значением параметра поддерживаются только типы Numeric, Float, Double и Currency; результат, возвращаемый BINTOC( ), имеет 8 байт;
·          F – nExpression рассматривается как поле типа Float и BINTOC( ) возвращает 4 байта;
·          B – nExpression рассматривается как поле типа Double и BINTOC( ) возвращает 8 байт;
·          R – реверсируется результирующая двоичная величина;
·          S – предотвращает изменение знакового бита числа (BITXOR).
Параметр eFlags используется аддитивно; может быть задан как число и как символ (строка), регистр символов произвольный, например:

? Bintoc(1, 1)
? Bintoc(1000, "2")   && или: Bintoc(1000, 2)
? Bintoc($12.34,8)
? Bintoc(1, "4RS")     && или: Bintoc(1, "RS")
? Bintoc(–100, "Fr")

Если параметр eFlags опущен, то длина результата 4 символа.
Функция BINTOC( ) может быть использована для уменьшения размера индекса числового поля с целыми данными. Так, если поле iPartCode содержит значения от 1 до 32,767, то следующая команда создаст 2-символьный индексный ключ:

index on Bintoc(iPartCode, 2) tag PartCode

CEILING(nExpression)

Возвращает наименьшее целое, большее или равное значению вещественного аргумента nExpression

? Ceiling(5.2)   && Напечатает 6
? Ceiling(–5.2)             && Напечатает –5

COS(nExpression)

Возвращает косинус вещественного аргумента

CTOBIN(cExpression)

Преобразовывает двоичное число cExpression в символьном представлении в целую величину; выполняет действие, обратное действию BINTOC( )

DTOR(nExpression)

Преобразовывает градусы в радианы

? Dtor(180)      && Напечатает: 3.14

EXP(nExpression)

Возвращает enExpression

FLOOR(nExpression)

Возвращает наименьшее целое, меньшее или равное значению вещественного аргумента nExpression

? Floor(5.2)      && Напечатает 5
? Floor(–5.2)                && Напечатает –6

INT(nExpression)

Возвращает целую часть вещественного аргумента nExpression

? Int(5.2)          && Напечатает 5
? Int(–5.2)                    && Напечатает –5

LOG(nExpression)

Возвращает натуральный логарифм  вещественного аргумента nExpression

LOG10(nExpression)

Возвращает десятичный логарифм вещественного аргумента nExpression

MAX(eExpression1,
            eExpression2
           
[, eExpression3 …])

Возвращает значение наибольшего параметра

MIN(eExpression1,
            eExpression2
           
[, eExpression3 …])

Возвращает значение наименьшего параметра

MOD(nDevidend,
            nDevisor)

Возвращает, как и операция %, остаток от деления выражения nDevidend / nDevisor

? Mod(7, 4)      && Напечатает: 3
? Mod(5.2, 2.3)            && Напечатает: 0.6

MTON(mExpression)

Возвращает числовое значение аргумента mExpression, имеющего тип Currency

? Mton($28.75)           && Напечатает: 28.7500

NTOM(nExpression)

Возвращает значение типа Currency, имеющее 4 десятичных знака, для числового аргумента nExpression

? Ntom(28.75) && Напечатает: 28.7500

PI( )

Возвращает число p

RAND([nSeedValue])

Возвращает вещественное случайное число, большее или равное 0 и меньшее 1.0. Последовательность генерируемых случайных чисел зависит от величины аргумента nSeedValue, изменяющего стартовую точку (затравку) генератора случайных чисел.
Если параметр nSeedValue отрицателен, то стартовая точка зависит от системного времени.
Если параметр nSeedValue опущен, то в качестве затравки используется число 100.001.
При использовании nSeedValue функция RAND( ) вызывается с этим параметром лишь первый раз. Остальные вызовы выполняются без указания параметра, например:

dimension a(100)
someArray(1) = Rand(–1)
for k = 2 to 100
     someArray(k) = Rand( )
next

Одна и та же положительная затравка даст одинаковую последовательность случайных чисел. Чтобы нарушить эту закономерность, в качестве nSeedValue указывается отрицательное число

ROUND(nExpression,
            nDecimalPlaces
)

Возвращает числовое значение аргумента nExpression, округленное до nDecimalPlaces десятичных знаков Если nDecimalPlaces < 0, то ближайшие к десятичной точке цифры целой части числа замещаются на 0

set decimals to 4
v = 123.8456
? v                             && Напечатает: 123.8456
? Round(v, 2)            && Напечатает: 123.8500
? Round(v, –2)          && Напечатает: 100.0000
? Round(v, –3)          && Напечатает: 0.0000

RTOD(nExpression)

Преобразовывает радианы в градусы

? Rtod(Pi( ))   && Напечатает: 180.00

SIGN(nExpression)

Возвращает 1, –1 или 0, если вещественный аргумент nExpression соответственно положителен, отрицателен или равен нулю

? Sign(–532.12)          && Напечатает: –1

SIN(nExpression)

Возвращает синус вещественного аргумента nExpression

SQRT(nExpression)

Возвращает квадратный корень из вещественного неотрицательного аргумента nExpression

TAN(nExpression)

Возвращает тангенс вещественного аргумента nExpression

VAL(cExpression)

Возвращает числовое значение, содержащееся в символьном аргументе cExpression