Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VisualFoxPro.doc
Скачиваний:
15
Добавлен:
01.07.2025
Размер:
11 Мб
Скачать
☆

3.4. Тип данных Currency

3.4.1. Перечень команд и функций

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

Таблица 3.19

Список команд и функций

Команда / функция

Описание

Команды

CALCULATE

Выполняет финансовые и статистические операции с полями таблиц или с выражениями, включающими поля

SET CURRENCY

Определяет символ валюты и его позицию

SET DECIMALS

Устанавливает минимальное число десятичных знаков, отображаемых при выводе числа

SET FIXED

Задает или отменяет строгое следование команде SET DECIMALS

SET POINT

Задает символ, используемый для отображения десятичной точки при выводе числа или данных типа Currency

SET SEPARATOR

Задает символ-разделитель групп в целой части числа, используемый при форматировании числовых данных и данных типа Currency

Функции

FV( )

Возвращает общую сумму будущих накоплений

MAX( )

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

MIN( )

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

MTON( )

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

NTOM( )

Возвращает значение типа Currency для числового аргумента

PAYMENT( )

Возвращает сумму уплаты по процентам

PV( )

Возвращает общий размер периодически осуществляемых инвестиций

3.4.2. Употребление типа Currency

Введен для отображения операций с денежной массой.

Перед константой типа Currency можно употребить унарные – и +, например:

someMoney = +$123.45

lostMoney = –$321.54

Замечание. Знак $ используется в константах типа Currency независимо символа валюты, задаваемого командой SET CURRENCY.

С данными типа Currency можно употреблять те же операции, что и с числовыми типами данных; результаты операций будут иметь тип Currency, например:

yVar1 = $100

yVar2 = $20.45

? yVar1 + yVar2 && Напечатает:120.4500

? yVar1 * yVar2 && Напечатает: 2045.0000

? yVar2 / yVar1 && Напечатает: 0.2045

? yVar1 % 30 && Напечатает: 10.0000

? yVar1^2 && Напечатает: 10000.0000

Если в арифметическом выражении имеется хотя бы один операнд типа Currency, то тип результата выражения также будет Currency (исключение составляет операция возведения в степень. Например:

yVar1 = $100

? VarType(2000 / (5 + 2 * yVar1)) && Напечатает: Y

? VarType(yVar1^2) && Напечатает: N

В принципе, данные типа Currency можно передавать в качестве параметров числовых функций. Тип результата зависит от функции. Так, значение типа Currency вернут, кроме функции NTOM( ), функции ABS( ), CEILING( ), FLOOR( ), INT( ), MOD( ) и ROUND( ). Математические функции, например SQRT( ), могут принять аргумент типа Currency, но вернут числовой результат. Например:

? Sqrt($100) && Напечатает: 10.0000

? VarType(Sqrt($100)) && Напечатает: N

? VarType(Abs(–$100)) && Напечатает: Y

По умолчанию при выводе на печать в качестве символа валюты отображается знак $, например если при форматировании данных используется FUNCTION "$":

set currency to

? $123.45 function "$" && Напечатает: 123.4500$

Однако значение по умолчанию можно заменить на иное.

Команды

SET CURRENCY TO [cCurrencySymbol]

и

SET CURRENCY LEFT | RIGHT

определяют символ валюты и его позицию при отображении данных типа Numeric, Currency, Float и Double.

Опции и параметр:

cCurrencySymbol – строка, задающая символы валюты.

Кроме того, символ валюты и другие установки можно задать интерактивно на вкладке Regional диалога Tools – Options (рис. 3.2).

Рис. 3.2. Фрагмент вкладки Regional

Выполнение SET CURRENCY TO восстанавливает заданный по умолчанию символ валюты.

LEFT – (по умолчанию) позиционирует символ валюты слева от значения.

RIGHT – позиционирует символ валюты справа от значения.

Установки SET CURRENCY сохраняются с текущей сессией данных.

Пример. В качестве символов валюты устанавливается "руб."

set currency to " руб." set currency right

set separator to "–"

someMoney = $12345.98

? someMoney picture "999,999.99" function "$" && Напечатает: 12–345.98 руб.

&& Восстанавливаем заданный по умолчанию разделитель

set separator to

Функция

NTOM(nExpression)

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

Пример:

set fixed off

someMoney = Ntom(28.75)

? VarType(someMoney) && Напечатает: Y

? someMoney && Напечатает: 28.7500

? Ntom(28.75678) && Напечатает: 28.7568

? Ntom(28.75672) && Напечатает: 28.7567

Функция

MTON(mExpression)

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

Пример:

someNumber = Mton($28.75)

? VarType(someNumber) && Напечатает: N

? someNumber && Напечатает: 28.7500

Функция

FV(nPayment, nInterestRate, nPeriods)

возвращает будущую стоимость инвестиции, образуемую по истечении периода nPeriods, на основе периодических постоянных (равных по величине сумм) платежей и постоянной процентной ставки. Тип результата – Numeric.

Параметры:

nPayment – сумма платежа, производимого в конце каждого периода (может быть как положительной, так и отрицательной).

nInterestRate – процентная ставка; задается не в процентах, а в виде числа от 0 до 1.

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

nPeriods – число периодов осуществления платежей.

Пример (приводится в справке VFP):

store 500 to gnPayment && Ежегодные платежи

store 0.075/12 to gnInterest && 7.5% – годовая процентная ставка

store 48 to gnPeriods && Период 4 года (48 месяцев)

clear

? FV(gnPayment, gnInterest, gnPeriods) && Напечатает: 27887.93

Функция

PV(nPayment, nInterestRate, nPeriods)

возвращает общий размер периодически осуществляемых инвестиций с учетом процентной ставки. Тип результата – Numeric.

Параметры:

См. описание функции FV( ).

Пример (приводится в справке VFP).

store 500 to gnPayment && Ежегодные платежи

store 0.075 / 12 to gnInterest && 7.5% – годовая процентная ставка

store 48 to gnPeriods && Период 4 года (48 месяцев)

clear

? PV(gnPayment, gnInterest, gnPeriods) && Напечатает: 20679.19

Функция

PAYMENT(nPrincipal, nInterestRate, nPayments)

возвращает сумму уплаты по процентам исходя из размера займа, процентной ставки и числа платежей. Тип результата – Numeric.

Параметры:

nPrincipal – размер займа.

nInterestRate – см. описание функции FV( ).

nPayments – общее число платежей, выполняемых для погашения займа.

Пример (приводится в справке VFP). Рассчитывается размер ежемесячного платежа по процентам, выполняемого по займу, срок погашения которого 20 лет.

store 100000 to gnPrincipal && Сумма займа

store 0.105 / 12 to gnInterest && 10.5% – годовая процентная ставка

store 20 * 12 to gnPayments && 20 – число лет погашения займа

pp = Payment(gnPrincipal, gnInterest, gnPayments)

? pp && Напечатает: 998.38

Замечание. Функции FV( ), PV( ) и PAYMENT( ) в качестве первого параметра могут принимать значение типа Currency. При этом результат функции также будет иметь тип Currency, например:

pp = Payment($100000, 0.105 / 12, 20 * 12)

? pp && Напечатает: 998.3799

? VarType(pp) && Напечатает: Y

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]