Числовые операторы и функции

Числовые операторы выполняют функции, аналогичные знакам арифметических одноместных и двуместных операций:

· op:numeric-add – сложение;

· op:numeric-subtract – вычитание;

· op:numeric-multiply – умножение;

· op:numeric-divide – деление;

· op:numeric-integer-divide – деление нацело;

· op:numeric-mod – взятие по модулю;

· op:numeric-unary-plus – унарный плюс;

· op:numeric-unary-minus – унарный минус.

Параметрами и возвращаемыми значениями являются данные типов xs:integer, xs:decimal, xs:float и xs:double (тип numeric), а также производных от них типов. Для последних двух операторов определен один аргумент типа, для остальных операторов – два аргумента типа numeric. Если типы аргументов не совпадают, перед выполнением операции выполняется преобразование к более общему типу.

 

Примеры числовых операторов:

1. op:numeric-add(12, 5) – возвращает значение 17.

2. op:numeric-divide(12.3, 5) – преобразует второй аргумент в данное типа xs:double и возвращает значение 2.46 типа xs:double.

 

Операторы сравнения выполняют функции, аналогичные функциям операторов в выражениях сравнения:

· op:numeric-equal – сравнение на равенство;

· op:numeric-less-than – сравнение на меньше, чем;

· op:numeric-greater-than – сравнение на больше, чем.

Эти операторы возвращают true или false в зависимости от результата сравнения.

 

Примеры операторов сравнения:

1. op:numeric-equal(12, 12.0) – возвращает значение true.

2. op:numeric-less-than(5, 8) – возвращает значение false.

 

В числовые функции XPath входят:

· fn:abs($arg as numeric?) as numeric? – возвращает абсолютное значение заданного в аргументе числа;

· fn:ceiling($arg as numeric?) as numeric? – возвращает наименьшее целое, которое не меньше, чем заданное в аргументе число;

· fn:floor($arg as numeric?) as numeric? – возвращает наибольшее целое, которое не больше, чем заданное в аргументе число;

· fn:round($arg as numeric?) as numeric? – возвращает заданное в аргументе число, округленное до ближайшего целого числа;

· fn:round-half-to-even($arg as numeric?, $precision as xs:integer) as numeric? – округляет заданное в первом аргументе число; в сторону ближайшего числа с точностью, заданной во втором аргументе. Если второй аргумент больше 0, то это число показывает точность справа от десятичной точки, иначе – слева. Если последняя отбрасываемая цифра равна 5, выполняется округление до ближайшего четного числа. Если функция задана с одним аргументом, предполагается, что значение второго аргумента равно 0.

 

Примеры числовых функций:

1. ceiling(3.14) – возвращает число 4.

2. floor(3.14) – возвращает число 3.

3. round(3.14) – возвращает число 3.

4. round-half-to-even(3.145, 2) – возвращает число 3.14.

5. round-half-to-even(3145, -2) – возвращает число 3100.

6. round-half-to-even(3.5, 2) – возвращает число 4.








Дата добавления: 2015-03-19; просмотров: 627;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.