組み込み関数
本章では、組み込み関数の基本概念および各関数について説明します。
1. 概要
組み込み関数は一時的なデータ項目であり、関数が指定されたステートメントの実行中に値が決まり、参照が可能になります。組み込み関数の名前はCOBOL語です。
実行されるサービスに応じて、算術、統計、日付/時刻、財務、文字処理、その他の関数に分類することができます。関数は、その名前を必要な引数と一緒に指定して手続き部のステートメントで使用し、実行後の結果として英数字、数字、または整数の値を返します。
関数の指定
関数識別子は、その関数のタイプのデータ項目を使用できるところであればどこでも指定することができます。関数の引数は、同じ関数についての他の評価を含めて、その結果が引数の条件を満たしている場合、任意の関数または関数を含む式にすることができます。
関数識別子の一般的な形式は以下のとおりです。

-
引数
引数 説明 function-name-1
function-name-1には、必ず1つの組み込み関数の名前を記述します。
argument-1
argument-1は、関数の引数の条件を満たしている識別子、リテラル(表意定数を除く)または算術式である必要があります。
argument-1には、日付フィールドを指定することができません。
reference-modifier
英数字関数のタイプについてのみ指定可能です。
関数の定義と評価
関数の特性には以下のようなものがあります。
-
英数字タイプの関数の場合、戻り値のサイズ
-
数字と整数タイプの関数の場合は、戻り値の符号および関数が整数かどうか
-
そのほかの関数によって返される値
このように関数が返す値のタイプと特性は、その関数の引数によって決定されます。引数のタイプと可変かどうかは、関数の定義によって変わります。
組み込み関数の評価は、コンテキストには影響されません。すなわち、関数の評価は、関数以外の操作や演算には影響を与えません。ただし、引数の属性によって影響を受ける場合があります。
手続き部内のステートメントでは、それぞれの関数の定義は、それと同じ位置にある識別子に関連する参照変更や修飾があれば、それらが評価されるときに同時に評価されます。
関数のタイプ
組み込み関数は、任意のデータ項目として使用され、以下のようなタイプがあります。
タイプ | 説明 |
---|---|
英数字 |
英数字タイプの関数は、英数字のクラスとカテゴリに属します。 戻り値は、暗黙的にUSAGE DISPLAY属性を持ちます。戻り値の文字の長さは、関数の定義によって決定されます。 |
数字 |
数字タイプの関数は、数字のクラスとカテゴリに属します。 戻り値は常に符号を考慮します。 数字タイプの関数は、算術式の中、またはMOVEステートメントのソースとしてのみ使用することができます。 INTEGERまたはINTEGER-PARTを使用して結果の値を整数に変換できる場合でも、整数を指定しなければならない個所では、数字タイプの関数を使用することができません。 |
整数 |
整数タイプの関数は、数字のクラスとカテゴリに属します。 戻り値は常に符号を考慮します。 整数タイプの関数は、算術式の中でのみ使用されるか、またはMOVEステートメントのソースとしてのみ使用することができます。整数の指定が可能であり、符号も付けられる場合、整数タイプの関数を使用することができます。 |
引数
引数は、関数の値を決めるために使用される値です。関数に応じて引数が不要な場合もあれば、1つまたは複数を必要とする場合もあります。また、可変数の引数を指定できる関数もあります。特定の識別子、算術式、または整数を指定することができ、それぞれの引数が解釈および評価され、最終的に関数の値が決まります。指定できる引数のタイプは以下のとおりです。
タイプ | 説明 |
---|---|
英字 |
英字タイプの基本データ項目または英字だけを含むリテラルを指定します。 引数のサイズは、関数の値を決定するために使用される場合があります。 |
英数字 |
英字、英数字タイプの基本データ項目または英数字リテラルを指定します。 引数のサイズは、関数の値を決定するために使用される場合があります。 |
整数 |
結果として常に整数値を持つ算術式を指定します。演算符号を含む算術式の値が関数の値を決定するために使用されます。 |
数字 |
算術式を指定します。演算符号を含む算術式の値が、関数の値を決定するために使用されます。 |
関数の個々の引数の詳細については、各関数の説明を参照してください。関数の値を求めるために、引数として設定できる値の範囲に制限がある場合があります。その制限に適合しない引数を指定した場合、戻り値は保証できません。 |
以下は、引数内の小文字を大文字に置き換える英数字タイプ関数UPPER-CASEの使用例です。このステートメントは、HELLOをDATA-NAMEに移動させます。
MOVE FUNCTION UPPER-CASE ('hello') TO DATA-NAME.
以下は、数字タイプ関数の使用例です。このステートメントは、数字関数SUMを使用して、A、B、およびCの値を加算し、その結果をNUM-ITEMに保存します。
COMPUTE NUM-ITEM = FUNCTION SUM (A B C)
関数の定義
関数の定義は、各組み込み関数の引数のタイプ、関数のタイプ、および戻り値を指定します。
引数のタイプと関数のタイプは、以下のような省略形の文字を使用します。
省略形 | 説明 |
---|---|
A |
英字 |
I |
整数 |
N |
数字 |
X |
英数字 |
O |
関数で定義されるその他のタイプ(ポインター、関数ポインター、プロシージャ・ポインターなど) |
以下は、組み込み関数の引数、関数のタイプ、戻り値をまとめた表です。
関数 | 引数 | 関数のタイプ | 戻り値 |
---|---|---|---|
N1 |
N |
N1の逆余弦(COS) |
|
N1、I2 |
N |
N1の金利で、I2期にわたって支払われる年金の初期投資額の割合 |
|
N1 |
N |
N1の逆正弦(SIN) |
|
N1 |
N |
N1の逆正接(TAN) |
|
I1 |
X |
照合シーケンスのI1の位置にある文字 |
|
N1 |
N |
N1の余弦(COS) |
|
なし |
X |
現在の時刻とグリニッジ標準時との時差 |
|
I1 |
I |
整数で表現された日付に相当する標準形式の日付(YYYYMMDD) |
|
I1、I2 |
I |
I1(ウィンドウ表示西暦年YYMMDD))に相当する年を、I2と実行時の年との合計が終了年である100年間隔で変更した標準形式の日付(YYYYMMDD) |
|
I1 |
I |
整数で表現された標準形式の日付(YYYYMMDD) |
|
I1、I2 |
I |
I1 (ウィンドウ表示西暦年の年間通算日形式YYDDD)に相当する年を、I2と実行時の年との合計が終了年である100年間隔で変更した標準形式の日付(YYYYMMDD) |
|
I1 |
I |
I1の階乗値 |
|
N1 |
I |
N1を超えない最大の整数値 |
|
I1 |
I |
標準形式の日付(YYYYMMDD)に相当する整数で表現された日付 |
|
I1 |
I |
年間通算日(YYYYDDD)に相当する整数で表現された日付 |
|
N1 |
I |
N1の整数部分 |
|
A1、N1、O1またはX1 |
I |
引数の長さ(国別文字位置、英数字位置またはバイト、引数のタイプによって異なります) |
|
N1 |
N |
N1のログ値(自然対数) |
|
N1 |
N |
N1のログ10値(常用対数) |
|
A1またはX1 |
X |
引数内のすべての文字を小文字に変換 |
|
A1 ... |
X |
最大引数の値(関数のタイプは引数によって決定) |
|
I1 ... |
I |
最大引数の値(関数のタイプは引数によって決定) |
|
N1 ... |
N |
最大引数の値(関数のタイプは引数によって決定) |
|
X1 ... |
X |
最大引数の値(関数のタイプは引数によって決定) |
|
N1 ... |
N |
引数の算術平均 |
|
N1 ... |
N1 |
引数の中央値 |
|
N1 .... |
N |
引数の最小値と最大値の平均 |
|
A1 ... |
X |
最小引数の値(関数のタイプは引数によって決定) |
|
I1 ... |
I |
最小引数の値(関数のタイプは引数によって決定) |
|
N1 ... |
N |
最小引数の値(関数のタイプは引数によって決定) |
|
X1 .... |
X |
最小引数の値(関数のタイプは引数によって決定) |
|
I1, I2 |
I |
I1のMOD I2(剰余演算) |
|
X1 |
N |
単純数字列の数値 |
|
X1 |
N |
単純数字列および通貨文字列の数値 |
|
A1またはX1 |
I |
照合シーケンスにおける引数の順序位置 |
|
A1 ...、N1...、またはX1 ... |
I |
最大引数の順序位置 |
|
A1....、N1...、またはX1 .... |
I |
最小引数の順序位置 |
|
N1, N2 ... |
N |
割引率がN1であり、将来の期限満了時の総額がN2である一連の数字の現在の値 |
|
I1, none |
N |
乱数 |
|
I1 ... |
I |
最大引数の値から最小引数の値を減算したもの(関数のタイプは引数によって決定) |
|
N1 ... |
N |
最大引数の値から最小引数の値を減算したもの(関数のタイプは引数によって決定) |
|
N1, N2 |
N |
N1/N2の乗算 |
|
A1またはX1 |
X |
引数文字の逆配列 |
|
N1 |
N |
N1の正弦(SIN)の値 |
|
N1 |
N |
N1の平方根 |
|
N1 ... |
N |
引数の標準偏差 |
|
I1 ... |
I |
引数の合計(関数のタイプは引数によって決定) |
|
N1 ... |
N |
引数の合計(関数のタイプは引数によって決定) |
|
N1 |
N |
N1の正接(TAN) |
|
X1 |
N |
NUMVAL関数の有効な引数であるかどうかを確認 |
|
X1 |
N |
NUMVAL-C関数の有効な引数であるかどうかを確認 |
|
I1, I2 |
X |
I1に指定した文字列の右側、左側、または両側の余分なスペースを削除 |
|
A1またはX1 |
X |
引数内のすべての文字を大文字に変換 |
|
N1 ... |
N |
引数の分散 |
|
None |
X |
プログラムがコンパイルされた時間 |
|
I1, I2 |
I |
I1(ウィンドウ表示西暦年YY)に相当する年を、実行時の年とI2を加算した値を終了年とする拡張した年(YYYY) |
各関数の詳細については、該当する節を参照してください。 |
2. ACOS
ACOSは数字タイプの関数であり、指定された引数の逆余弦(COS)の値を返します。

-
引数
引数 説明 argument-1
-1以上+1以下の数字である必要があります。
-
戻り値
引数の逆余弦(COS)の近似値であり、0以上Pi以下です。
3. ANNUITY
ANNUITYは数字タイプの関数です。特定の期間につき特定の金利で、各期ごとに支払われる年金の初期値に対する割合を近似で表した値を返します。

-
引数
引数 説明 argument-1
必ず数字で指定します。値は0より大きいか等しい必要があります。
金利に相当する値が指定されます。
argument-2
必ず整数で指定します。
期間に相当する値が指定されます。
-
戻り値
argument-1が0でない場合、関数によって返される値は、以下のような近似値になります。
たとえば、argument-1の値が0、argument-2の値が4の場合、1/4の近似値が返されます。
1/ argument-2
argument-1の値が0でない場合、関数の値は以下の近似値になります。
argument-1 / (1 - (1 + argument-1) ** (- argument -2))
4. ASIN
ASINは数字タイプの関数であり、指定された引数の逆正弦(SIN)値を返します。

-
引数
引数 説明 argument-1
必ず数字で指定します。
値は、-1以上+1以下である必要があります。
-
戻り値
argument-1の逆正弦(SIN)の近似値で、-P1/2以上+Pi/2以下です。
5. ATAN
ATANは数字タイプの関数であり、指定された引数の逆正接(TAN)値を返します。

-
引数
引数 説明 argument-1
必ず数字で指定します。
-
戻り値
argument-1の逆正接(TAN)の近似値で、-Pi/2以上+Pi/2以下です。
6. CHAR
CHARは英数字タイプの関数であり、指定された引数の値に相当する照合シーケンス位置にある英数字を返します。

-
引数
引数 説明 argument-1
必ず整数を指定します。
0以上の英数字データ項目(最大256)に関連した照合シーケンス内にある数字である必要があります
-
戻り値
複数の文字が、プログラムの照合シーケンス内で同じ位置にある場合、関数の値として返される文字は、ALPHABET節の中でその文字位置に対して指定された最初のリテラル文字です。
現在のプログラムは、照合シーケンスがALPHABET節によって指定されていない場合には、1バイトのEBCDIC照合シーケンスが使用されます。 |
7. COS
COSは数字タイプの関数であり、引数によって指定されたCOS値を返します。

-
引数
引数 説明 argument-1
必ず数字で指定します。
-
戻り値
引数のCOSの近似値で、-1以上+1以下の値です。
8. CURRENT-DATE
CURRENT-DATEは、英数字タイプの関数です。カレンダー上の日付、時刻、およびこの関数が実行されるシステムで提供されているグリニッジ標準時との時差を表す21文字の英数字を返します。

-
戻り値
返される21桁の文字は、左から右の順で以下の内容を示します。
文字位置 内容 1から4
グレゴリオ暦における年を表す4桁の数字です。
5から6
月を表す2桁の数字で、01から12の範囲にある値です。
7から8
日付を表す2桁の数字で、01から31の範囲にある値です。
9から10
深夜午前0時からの時間を表す2桁の数字で、00から23の範囲内にある値です。
11から12
分を表す2桁の数字で、00から59の範囲にある値です。
13から14
秒を表す2桁の数字で、00から59の範囲にある値です。
15から16
100分の1秒を表す2桁の数字で、00から99の範囲にある値です。
関数を実行するシステムが秒より細かい単位の時間を提供する機能がない場合は、00を返します。
17
以下の文字で表示されます。
-
"-" : 返される時間がグリニッジ標準時より遅れている場合の戻り値
-
"+" : グリニッジ標準時より進んでいるか、等しい場合の戻り値
-
"0" : 関数を実行するシステムが現地時間の時差を計算する機能がない場合の戻り値
18から19
-
17番目の文字が"-"の場合、時間を表す00から12までの数字が返されます。ここに表示されるのは、グリニッジ標準時より遅れている時間です。
-
17番目の文字が"+"の場合は、グリニッジ標準時より進んでいる時間を示す00から13までの2桁の数字を返します。
-
17番目の文字が"0"の場合は、00が返されます。
20から21
前述の時間差で、分を表す00から59までの2桁の数字が返されます。
17番目の文字が"+"または"-"かに応じて、このフィールドに相当する分だけの時差があるという意味です。17番目の文字が"0"の場合は、00が返されます。
-
9. DATE-OF-INTEGER
DATE-OF-INTEGERは整数タイプの関数です。グレゴリオ暦の日付を整数で表した形式から標準形式の日付(YYYYMMDD)に変換します。

-
引数
引数 説明 argument-1
正の整数で、グレゴリオ暦の1601年1月1日以降の日付を指定します。
有効範囲は1から3,067,671であり、これは1601年1月1日から9999年12月31日の範囲に該当します。
argument-1に指定された整数に相当する国際標準化機構(ISO)の標準形式の日付を返します。
-
戻り値
YYYYMMDD形式の8桁の整数で、YYYYはグレゴリオ暦の年、MMは月、DDは日を示します。
10. DATE-TO-YYYYMMDD
DATE-TO-YYYYMMDDは、整数タイプの関数です。argument-1の値を、2桁の年で表した日付形式(YYMMDD)から4桁で表した日付形式(YYYYMMDD)に変換します。argument-2は、実行時に開始の年に加わって追加される、前の2桁を指定するための引数として使用されます。

-
引数
引数 説明 argument-1
0または991,232未満の正の整数である必要があります。
COBOL実行時には値が有効かどうかはチェックしません。
argument-2
整数である必要があり、省略する場合は50が指定されたものとみなされます。
実行時の年とargument-2の値の合計は、10,000より小さく、1699よりは大きくする必要があります。
-
戻り値
以下は、関数の戻り値の例です。
現在の年 argument-1の値 argument-2の値 戻り値 2002
851003
120
20851003
2002
851003
-20
18851003
2002
851003
10
19851003
1994
981002
-10
19891002
11. DAY-OF-INTEGER
DAY-OF-INTEGERは整数タイプの関数です。グレゴリオ暦の日付を整数で表した日から年間通算日形式(YYYYDDD)に変換します。

-
引数
引数 説明 argument-1
正の整数で、グレゴリオ暦の1601年1月1日以降の日付を指定します。
有効範囲は1から3,067,671であり、これは1601年1月1日から9999年12月31日の範囲に該当します。
-
戻り値
argument-1に指定された7桁の整数に相当する年間通算日を返します。返されるデータの形式はYYYYDDDであり、YYYYはグレゴリオ暦の年を、DDDは日を意味します。
12. DAY-TO-YYYYDDD
DAY-TO-YYYYDDDは、整数タイプの関数です。

-
引数
引数 説明 argument-1
argument-1の値を、2桁の年で表した形式(YYDDD)から4桁の年を表した形式(YYYYDDD)に変換します。
0または99,367未満の正の整数を指定します。
argument-2
argument-2は、実行時に開始の年に加わって追加される、前の2桁を指定するための引数として使用されます。整数である必要があり、省略する場合は50が指定されたものとみなされます。
実行時の年とargument-2の値の合計は10,000より小さく、1699よりは大きくする必要があります。
-
戻り値
以下は、関数の戻り値の例です。
現在の年 argument-1の値 argument-2の値 戻り値 2002
10004
-20
1910004
2002
10004
-120
1810004
2002
10004
20
2010004
2013
95005
-10
1995005
13. FACTORIAL
FACTORIALは整数タイプの関数であり、指定された引数の階乗値を返します。

-
引数
引数 説明 argument-1
コンパイル時にARITH(COMPAT)オプションが有効である場合、argument-1は0以上28未満の整数である必要があります。
ARITH(EXTEND)が有効である場合には、argument-1は0以上29以下の整数である必要があります。
-
戻り値
argument-1が0の場合は1を、0以外の場合は、argument-1の階乗値を返します。
14. INTEGER
INTEGERは整数タイプの関数であり、指定された引数より小さいか等しい最大の整数を返します。

-
引数
引数 説明 argument-1
必ず数字で指定します。
-
戻り値
argument-1未満の最大の整数を返します。
たとえば、FUNCTION INTEGER(2.5)の場合は2を返し、FUNCTION INTEGER(-2.5)である場合には-3を返します。
15. INTEGER-OF-DATE
INTEGER-OF-DATEは整数タイプの関数です。グレゴリオ暦の日付を標準形式の日付(YYYYMMDD)から整数で表した日付形式に変換します。

-
引数
引数 説明 argument-1
YYYYMMDD形式の整数を指定します。
その値は、(YYYY * 10,000)+(MM * 100)+ DDという式から得られます。
-
YYYY : グレゴリオ暦の年を示します。この値は、1600よりも大きく、9,999未満の整数を指定します。
-
MM : 月を表し、13未満の整数です。
-
DD : 日を表し、32未満の整数です。ただし、指定された月に有効な日付を指定する必要があります。
-
-
戻り値
戻り値は、1から3,067,671の範囲にある7桁の整数です。argument-1によって表現された日付をグレゴリオ暦で1601年1月1日以降の日数を換算した値です。
16. INTEGER-OF-DAY
INTEGER-OF-DAYは整数タイプの関数です。グレゴリオ暦の日付を年間通算日形式(YYYYDDD)に変換した整数を返します。

-
引数
引数 説明 argument-1
YYYYDDD形式の整数を指定します。
その値は、(YYYY * 10,000)+ DDDという式により得られます
-
YYYY : グレゴリオ暦の年を値としており、1,600より大きく、9,999未満の整数を指定します。
-
DDD : 年間通算日を表す値として、指定した年に対して有効な367よりも小さい整数を指定します。
-
-
戻り値
7桁の整数値が返されます。argument-1によって表現された日付をグレゴリオ暦で1601年1月1日以降の日数を換算した値です。
17. INTEGER-PART
INTEGER-PARTは整数タイプの関数であり、指定された引数の整数部分を返します。

-
引数
引数 説明 argument-1
必ず数字で指定します。
-
戻り値
argument-1の値が0の場合は0を返し、0でない場合は以下のようになります。
-
argument-1の値が正数の場合、argument-1以下の最大の整数を返します。
-
argument-1の値が負数の場合には、argument-1以上の最小の整数を返します。
-
18. LENGTH
LENGTHは整数タイプの関数であり、引数の長さに相当する整数を返します。

-
引数
引数 説明 argument-1
指定可能な値は以下のとおりです。
-
英数字リテラル
-
2バイト文字以外の任意のデータ項目
-
POINTER、PROCEDURE-POINTER、またはFUNTION-POINTERとして記述されるデータ項目
-
ADDRESS OF特殊レジスター
-
LENGTH OF特殊レジスター
-
-
戻り値
戻り値は、以下のような規則により指定された9桁の整数です。
-
argument-1が英数字リテラル、英字、または英数字の基本データ項目である場合、argument-1に指定された英数字の文字列の長さを返します。
-
argument-1がNULLで終了された文字列である場合、戻り値は最後のNULLを除く長さを返します。
-
英数字データ項目の長さ、または1バイトの文字と2バイトの文字が混在しているリテラルの長さは、1バイトの文字としてみなされます。
-
argument-1が英数字グループ項目である場合、グループの内容に関係なく、argument-1の英数字の長さを返します。
-
argument-1に属されている特定のデータ項目がOCCURS節のDEPENDING句を使用して記述されている場合、argument-1の長さは、DEPENDINGに指定されたデータ項目の内容によって決定されます。FILLERがある場合は、暗黙的に一緒に計算されます。
-
それ以外の場合は、argument-1が占めているストレージのバイト数を返します。
-
19. LOG
LOGは数字タイプの関数であり、指定された引数のe(自然対数)を底とする対数の近似値を返します。

-
引数
引数 説明 argument-1
0より大きい数字を指定します。
-
戻り値
戻り値は、eを底とするargument-1の対数の近似値です。
20. LOG10
LOG10は数字タイプの関数であり、指定された引数の10を底とする対数の近似値を返します。

-
引数
引数 説明 argument-1
0より大きい数字を指定します。
-
戻り値
戻り値は、10を底とするargument-1の対数の近似値です。
21. LOWER-CASE
LOWER-CASEは、引数に含まれている大文字を小文字に変換する関数です。関数のタイプは、以下のとおり引数のタイプによって異なります。
引数のタイプ | 関数のタイプ |
---|---|
英字 |
英数字 |
英数字 |
英数字 |

-
引数
引数 説明 argument-1
英字または英数字であり、少なくとも1つ以上の文字を指定します
-
戻り値
引数として入力した大文字が対応する小文字に変換されます。
argument-1と同じ文字列が返されます。argument-1が英字または英数字の場合、「A」から「Z」までの大文字は、対応する「a」から「z」の小文字に変換されます。返される文字列の長さは、argument-1で指定した文字列の長さと同じです。
22. MAX
MAXは引数の最大値を返す関数です。関数のタイプは、以下のとおり引数のタイプによって異なります。
引数のタイプ | 関数のタイプ |
---|---|
英字 |
英数字 |
英数字 |
英数字 |
すべての引数が整数 |
整数 |
数字(一部の引数が整数) |
数字 |

-
引数
引数 説明 argument-1
英字、英数字、または数字を指定します。すべての引数が同じタイプである必要があります。ただし、例外として英字と英数字の組み合わせは許可されます。
-
戻り値
最大値を持つargument-1に指定された引数を返します。最大値を決定するために使用される比較演算は、単純条件に関する規則に基づいて行われます。複数のargument-1が同じ最大値を持っている場合は、その値を持つ引数の中で最も左側に指定された引数を返します。
23. MEAN
MEANは数字タイプの関数であり、引数の算術平均の近似に相当する数字を返します。

-
引数
引数 説明 argument-1
必ず数字で指定します。
-
戻り値
戻り値は引数の算術平均値です。argument-1の引数の合計をargument-1の数で除算した値の近似値です。
24. MEDIAN
MEDIANは数字タイプの関数です。複数の引数をソートして作成されたリストの中で中央値を持つ引数を返します。

-
引数
引数 説明 argument-1
必ず数字で指定します。
-
戻り値
戻り値は、argument-1に指定された引数をソートして作成されたリストの中で中央値を持つ引数です。
25. MIDRANGE
MIDRANGEは数字タイプの関数であり、最小値と最大値の算術平均の近似値を返します。

-
引数
引数 説明 argument-1
必ず数字で指定します。
-
戻り値
戻り値は、引数の最大値と最小値の算術平均です。最大値と最小値は、単純比較の規則に従って決まります。
26. MIN
MINは、引数の最小値を返す関数です。
関数のタイプは、以下のとおり引数のタイプによって異なります。
引数のタイプ | 関数のタイプ |
---|---|
英字 |
英数字 |
英数字 |
英数字 |
すべての引数が整数 |
整数 |
数字(一部の引数が整数) |
数字 |

-
引数
引数 説明 argument-1
英字、英数字、または数字を指定します。
-
戻り値
戻り値は、最小値を有するargument-1に指定された引数です。
最小値を決定するために使用される比較演算は、単純条件に関する規則に基づいて行われます。複数のargument-1が同じ最小値を持っている場合は、その値を持つ引数の中で最も左側に指定された引数が返されます。
27. MOD
MODは整数タイプの関数です。argument-1をargument-2で割った余りの整数値を返します。戻り値は、argument-1とargument-2のうち、桁数が少ない方と同じ桁数の整数です。

-
引数
引数 説明 argument-1
必ず整数を指定します。
argument-2
整数を指定します。0にすることはできません。
-
戻り値
argument-1をargument-2で割った余りを返します。以下の式により定義されます。
argument-1 - (argument-2 * FUNCTION INTEGER (argument-1/argument-2))
以下は、関数の戻り値の例です。
argument-1の値 argument-2の値 戻り値 11
5
1
-11
5
4
11
-5
-4
-11
-5
-1
28. NUMVAL
NUMVALは数字タイプの関数です。引数として指定された英数字の文字列で表した数値を返します。文字列の中に空白または連続表示の文字がある場合は、その文字を削除して数値を計算します。

-
引数
引数 説明 argument-1
英数字リテラル、または以下の形式の文字列を含む英数字データ項目を指定します。
-
空白:1つ以上の空白文字
-
数字:1つ以上の数字
SPECIAL-NAMES段落にDECIMAL-POINT IS COMMA節が指定されている場合、argument-1の中には小数点の代わりにコンマを使用する必要があります。
以下は、argument-1の形式です。
-
-
戻り値
戻り値は、argument-1によって表現される数値の浮動小数点近似値です。
29. NUMVAL-C
NUMVAL-Cは数字タイプの関数です。引数として指定された英数字の文字列で表した数値を返します。文字列の中に空白または連続表示の文字がある場合は、その文字を削除して数値を計算します。

-
引数
引数 説明 argument-1
英数字リテラル、または以下の形式の文字列を含む英数字データ項目を指定します。
argument-2
通貨文字値を指定します。
以下は、argument-1の形式です。
-
戻り値
戻り値は、argument-1によって表現される数値の浮動小数点近似値です。
30. ORD
ORDは整数タイプの関数です。プログラム照合シーケンスの中で、この引数が持つ順序に相当する整数を返します。最小値は1です。

-
引数
引数 説明 argument-1
英字と英数字のいずれかを指定します。
-
戻り値
戻り値は3桁の整数であり、argument-1のプログラム照合シーケンスの中の位置を返します。シーケンスに応じて、1から256までの値のいずれかを返します。
31. ORD-MAX
ORD-MAXは整数タイプの関数です。指定された引数から最大値のプログラム照合シーケンス上の順序を返します。

-
引数
引数 説明 argument-1
英字、英数字、または数字を指定します。
複数の引数を指定する場合は、すべて同じタイプである必要があります。ただし、例外として英字と英数字の組み合わせは許可されます。
-
戻り値
戻り値は、指定された引数の中で最大値を持つ引数の照合シーケンス順序です。
最大値を持つ引数は、単純条件に関する規則に基づいて選択されます。複数の引数が同じ最大値を持っている場合、その値を持つ引数の中で最も左側に位置する引数の順序が返されます。
32. ORD-MIN
ORD-MINは整数タイプの関数です。指定された引数から最小値のプログラム照合シーケンス上の順序を返します。

-
引数
引数 説明 argument-1
英字、英数字、または数字を指定します。
複数の引数を指定する場合は、すべて同じタイプである必要があります。ただし、例外として英字と英数字の組み合わせは許可されます。
-
戻り値
戻り値は、指定された引数の中で最小値を持つ引数の照合シーケンス順序です。
最小値を持つ引数は、単純条件に関する規則に基づいて選択されます。複数の引数が同じ最小値を持っている場合、その値を持つ引数の中で最も左側に位置する引数の順序が返されます。
33. PRESENT-VALUE
PRESENT-VALUEは数字タイプの関数です。argument-2に指定された将来の期間満了時の一定額を、argument-1に指定された割引率を適用して、現在の値の近似値を返します。

-
引数
引数 説明 argument-1
-1より大きい数字を指定します。
argument-2
必ず数字で指定します。
-
戻り値
以下の式により計算された値の近似値を返します。(指数nはargument-2の数です)
argument-2 / (1+argument-1) ** n
34. RANDOM
RANDOMは数字タイプの関数です。長方形分布(rectangular distribution)からランダムに抽出した数字を返します。

-
引数
引数 説明 argument-1
0または正の整数を指定します。ただし、0から2,147,483,645の範囲にある値だけが明確な乱数を発生させます。
2回目以降の参照の場合、argument-1が指定されていれば、新しい乱数が発生します。ある指定されたシード値に対して乱数値は常に同じです。実行単位において関数を最初に参照する場合、argument-1が指定されていなければ、初期値は0です。
-
戻り値
0と1の間の数字が返されます。
35. RANGE
RANGEは、最大引数の値から最小引数の値を減算した結果を返す関数です。
以下のとおり、関数のタイプは引数のタイプによって異なります。
引数のタイプ | 関数のタイプ |
---|---|
すべての引数が整数 |
整数 |
数字(一部の引数は整数) |
数字 |

-
引数
引数 説明 argument-1
必ず数字で指定します。
-
戻り値
最大値を持つargument-1から最小値を持つargument-1を減算した値を返します。最大値と最小値を決定するため、単純条件に関する規則に従います。
36. REM
REMは数字タイプの関数です。argument-1をargument-2で割った余りの値を返します。

-
引数
引数 説明 argument-1
必ず数字で指定します。
argument-2
0以外の数字を指定します。
-
戻り値
argument-1をargument-2で割った余りを返します。戻り値は、以下の式より定義することができます。
argument-1 - (argument-2 * FUNCTION INTEGER-PART(argument-1/argument-2))
37. REVERSE
REVERSEは、指定された引数の文字列と同じ文字を使用して順番のみ逆ソートさせた値を返す関数です。引数と戻り値の文字列の長さは同じです。
以下のとおり、関数のタイプは引数のタイプによって異なります。
引数のタイプ | 関数のタイプ |
---|---|
英字 |
英数字 |
英数字 |
英数字 |

-
引数
引数 説明 argument-1
長さが1以上の英字または英数字である必要があります。
-
戻り値
argument-1と同じ長さの文字列であり、argument-1の文字列を逆ソートします。
たとえば、argument-1に「ABC」を指定する場合、「CBA」が返されます。
38. SIN
SINは数字タイプの関数であり、指定された引数のSIN値を返します。

-
引数
引数 説明 argument-1
必ず数字で指定します。
-
戻り値
argument -1のSIN値の近似値を返し、-1以上+1以下の値です。
39. SQRT
SQRTは数字タイプの関数であり、指定された引数の平方根に近似する数値を返します。

-
引数
引数 説明 argument-1
0または正の整数を指定します。
-
戻り値
argument-1の平方根の近似値の絶対値を返します。
40. STANDARD-DEVIATION
STANDARD-DEVIATIONは数字タイプの関数です。引数の標準偏差に近似する数値を返します。

-
引数
引数 説明 argument-1
必ず数字で指定します。
-
戻り値
argument-1の標準偏差の近似値です。
41. SUM
SUMは、指定された引数の合計を返す関数です。
関数のタイプは、以下のとおり引数のタイプによって異なります。
引数のタイプ | 関数のタイプ |
---|---|
すべての引数が整数 |
整数 |
数字(一部の引数は整数) |
数字 |

-
引数
引数 説明 argument-1
必ず数字で指定します。
-
戻り値
すべての引数の合計です。
42. TAN
TANは数字タイプの関数です。指定された引数の正接(TAN)値を返します。

-
引数
引数 説明 argument-1
必ず数字で指定します。
-
戻り値
argument-1の正接(TAN)値の近似値を返します。
43. TEST-NUMVAL
TEST-NUMVALは、argument-1の内容がNUMVAL関数の引数の仕様に準拠しているかを確認します。

-
引数
引数 説明 argument-1
英数字リテラルまたは英数字データ項目を指定します。
-
戻り値
argument-1の内容がNUMVAL関数の引数の仕様に準拠している場合、0を返します。
1つ以上の文字にエラーがある場合、返される値はエラーのある最初の文字の位置です。
44. TEST-NUMVAL-C
TEST-NUMVAL-Cは、argument-1の内容がNUMVAL-C関数の引数の仕様に準拠しているかを確認します。

-
引数
引数 説明 argument-1
英数字リテラルまたは以下の形式の文字列を含む英数字データ項目を指定します。
argument-2
通貨文字値を指定します。
以下は、argument-1の形式です。
-
戻り値
argument-1の内容がNUMVAL関数の引数の仕様に準拠している場合、0を返します。
1つ以上の文字にエラーがある場合、返される値はエラーのある最初の文字の位置です。
45. TRIM
TRIMは、argument-1の文字列に対してLEADINGとTRAILING、または両方の余分なスペースを削除します。

-
引数
引数 説明 argument-1
英字、英数字、国別のタイプを指定します。
argument-2
LEADINGまたはTRAILINGを指定するか、省略します。
-
戻り値
以下は、関数の戻り値の例です。
argument-1の値
argument-2の値
戻り値
" Hello, world! "
LEADING
"Hello, world! "
" Hello, world! "
TRAILING
" Hello, world!"
" Hello, world! "
"Hello, world!"
" "
""
""
""
46. UPPER-CASE
UPPER-CASEは、指定された引数の小文字をそれぞれに対応する大文字に変換する関数です。
関数のタイプは、以下のとおり引数のタイプによって異なります。
引数のタイプ | 関数のタイプ |
---|---|
英字 |
英数字 |
英数字 |
英数字 |

-
引数
引数 説明 argument-1
少なくとも1文字以上の英字または英数字を指定します。
-
戻り値
小文字に対応する大文字に変換され、argument-1と同じ長さの文字列が返されます。
argument-1が英字または英数字の場合、「A」から「Z」までの大文字は、対応する「a」から「z」の小文字に変換されます。
47. VARIANCE
VARIANCEは数字タイプの関数であり、引数の分散に近似する数値を返します。

-
引数
引数 説明 argument-1
必ず数字で指定します。
-
戻り値
argument-1の分散の近似値です。
48. WHEN-COMPILED
WHEN-COMPILEDは英数字タイプの関数です。プログラムがコンパイルされたシステムから提供されるプログラムのコンパイル時間を返します。

-
戻り値
返される21桁の文字には、以下のような内容が含まれています。
文字位置 内容 1から4
グレゴリオ暦における年を表す4桁の数字です。
5から6
月を表す2桁の数字で、01から12の範囲にある値です。
7から8
日付を表す2桁の数字で、01から31の範囲にある値です。
9から10
深夜午前0時からの時間を表す2桁の数字で、00から23の範囲内にある値です。
11から12
分を表す2桁の数字で、00から59の範囲にある値です。
13から14
秒を表す2桁の数字で、00から59の範囲にある値です。
15から16
100分の1秒を表す2桁の数字で、00から99の範囲にある値です。
関数を実行するシステムが秒より細かい単位の時間を提供する機能がない場合は、00を返します。
17
以下の文字の値が返されます。
-
"-" : 返される時間がグリニッジ標準時より遅れている場合の戻り値
-
"+" : グリニッジ標準時より進んでいるか、等しい場合の戻り値
-
"0" : 関数を実行するシステムが現地時間の時差を計算する機能がない場合の戻り値
18から19
-
17番目の文字が"-"の場合、時間を表す00から12までの数字が返されます。ここに表示されるのは、グリニッジ標準時より遅れている時間です。
-
17番目の文字が"+"の場合は、グリニッジ標準時より進んでいる時間を示す00から13までの2桁の数字を返します。
-
17番目の文字が"0"の場合は、00が返されます。
20から21
前述の時間差で、分を表す00から59までの2桁の数字が返されます。
17番目の文字が"+"または"-"かに応じて、このフィールドに相当する分だけの時差があるという意味です。17番目の文字が"0"の場合は、00が返されます。
この関数を含むプログラムのコンパイル時間を返します。他のプログラムに属するサブプログラムの場合、そのサブプログラムがコンパイルされた時刻を返します。
-
49. YEAR-TO-YYYY
YEAR-TO-YYYYは整数タイプの関数です。argument-1の2桁の年を4桁の年に変換します。argument-2に指定した値と実行された時点の年を加算した値に近い年に拡張されます。

-
引数
引数 説明 argument-1
100未満の正の整数を指定します。
argument-2
整数を指定します。省略した場合、デフォルト値は50です。
-
戻り値
以下は、関数の戻り値の例です。
現在の年 argument-1の値 argument-2の値 戻り値 1995
4
23
2004
1995
4
-15
1904
2008
98
23
1998
2008
98
-15
1898