Язык процедур 2-REXX для OS-2

       

FORMAT


Функция FORMAT в качестве результата возвращает число, округленное и форматированное.

Указанное число сначала округляется и форматируется в соответствии со стандартными правилами языка REXX, как если бы была выполнена операция число+0. Если указано только число, то результат будет в точности равен результату данной операции. Если указан какой-либо режим, то число форматируется в соответствии с правилами, оговоренными для каждого режима.

Режимы до и после указывают, сколько позиций должно использоваться для записи соответственно целой и дробной части результата. Если оба этих режима или какой-либо из них опущен, то результат возвращается таким, каков он на самом деле.

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

Ниже приведено несколько примеров: FORMAT('3',4) -> ' 3' FORMAT('1.73',4,0) -> ' 2' FORMAT('1.73',4,3) -> ' 1.730' FORMAT('-.76',4,1) -> ' -0.8' FORMAT('3.03',4) -> ' 3.03' FORMAT(' - 12.73',,4) -> '-12.7300' FORMAT(' - 12.73') -> '-12.73' FORMAT('0.000') -> '0'

Первые три режима описаны выше. Режимы expp и expt управляют выводом результата в экспоненциальной форме: expp указывает число позиций, требующихся для написания показателя степени; по умолчанию используется столько, сколько нужно. expt устанавливает точку отсчета для представления результата в экспоненциальной форме. Если количество позиций целой части числа превышает значение expt, то используется экспоненциальная форма представления результата. Экспоненциальная форма используется и тогда, когда количество позиций, требующихся для записи десятичной части числа, вдвое превышает значение expt.
По умолчанию принимается текущее назначение NUMERIC DIGITS. Если в качестве значения expt указан 0, то экспоненциальная форма записи результата будет использоваться всегда, несмотря на то, что показатель степени может быть равен 0. Значение expp должно быть меньше 10, а на остальные режимы ограничений не существует. Если в качестве значения expp указан 0, то экспоненциальная форма представления результата не используется, и число записывается в простой форме с дополнительными нулями, если это необходимо (отменяет значение 0 режима expt). Однако, если значение expp не настолько велико, чтобы вместить требуемый показатель степени, то выдается сообщение об ошибке. Если же показатель степени равен 0, то в этом случае (при ненулевом значении expp) для записи экспоненциальной части результата используется expp+2 пробела.

Ниже приведено несколько примеров: FORMAT('12345.73',,,2,2) -> '1.234573E+04' FORMAT('12345.73',,3,,0) -> '1.235E+4' FORMAT('1.234573',,3,,0) -> '1.235' FORMAT('12345.73',,,3,6) -> '12345.73' FORMAT('1234567e5',,3,0) -> '123456700000.000'




Содержание раздела