ソートマージ


付録B.1 数値(固定小数点数)データの端数処理

ここでは,入力データが数値(固定小数点数)の場合の端数処理について説明します。

入力データの数値が小数の場合,小数点位置を合わせて入力します。入力データ中に小数点がない場合,データの末尾に小数点を仮定して入力します。入力データの桁に過不足がある場合は,桁調整を行った内部データ形式に変換されたあと,比較されます。

入力データの数値の扱いを次に示します。

整数部の桁調整
  • 有効桁数に満たないデータを入力した場合,左側に0(ゼロ)を加えて,有効桁に調整されます。

  • 左側が空白(ゼロ抑止)のデータを入力した場合,空白を0(ゼロ)と見なして有効桁に調整されます。

  • 有効桁数を超えるデータを入力した場合,左側の桁あふれ部分が無視されます。

  • 丸め方法は,環境ファイル(EXS_ROUND),またはroundオプションで指定された方法が適用されます。詳細は「5.8.11 roundオペランド」を参照してください。

小数部の桁調整
  • 有効桁数に満たないデータを入力した場合,右側に0(ゼロ)を加えて,有効桁数に調整されます。

  • 有効桁数を超えるデータを入力した場合,右側の桁あふれ部分を丸めて,有効桁数に調整されます。ただし,CSV数値データ(固定小数点数)の形式チェックオプション(CSVFRMCHKオプション)を指定した場合は,数字以外を丸めに用いません。有効桁の右隣りから数字以外の文字が出てくるまでが「あふれ部分」と見なされます。

    CSVFRMCHKオプション指定時の例を次の表に示します。

    入力データ

    小数部あふれ部分

    (p = 4,s = 1)

    解説

    999

    なし

    小数点以下なし

    999.

    なし

    小数点以下なし

    999.0

    なし

    小数点以下2桁目以降なし

    999.12

    2(1桁)

    小数点以下2桁目以降があふれ部分

    999.123

    23(2桁)

    小数点以下2桁目以降があふれ部分

    999.12A

    2(1桁)

    英字の前までがあふれ部分

    999.1A3

    なし

    英字の前まで(数字なし)

  • 丸め方法は,環境ファイル(EXS_ROUND),またはroundオプションで指定された方法が適用されます。詳細は「5.8.11 roundオペランド」を参照してください。

ゼロ値の扱い
  • 入力データがすべて空白文字である場合は,0(ゼロ)として扱われます。

  • 符号付きゼロ(+0,-0)と,符号なしゼロ(0)は同じ値として扱われます。

小数点位置の合わせ方
  • データ中に小数点がある場合は,小数点位置を合わせて入力されます。

  • データ中に小数点がない場合は,データの末尾に小数点を仮定して入力されます。

    入力データ

    小数点位置

    説明

    小数点あり

    .123
    1.23
    12.3
    123.
       .123
      1.23
     12.3
    123.3

    小数点位置を合わせて入力します。

    小数点なし

    1
    12
    123
    1234
        1.
       12.
      123.
     1234.

    データ末尾に小数点を仮定して入力します。

入力データが数値の場合の,指定できる有効桁数の指定例を次の表に示します。なお,表中のpおよびsは,-csvkeyのパラメタに対応しています。

入力データ

有効桁数の指定

内部データ形式

説明

総桁数

(p)

整数部

(p-s)

小数部

(s)

1.234

8

5

3

00001.234

  • 整数部の桁が不足している場合

    整数部の左側に0を加えられて,5桁に調整されます。

△△12.34

6

4

2

0012.34

  • 整数部の先頭が空白の場合

    整数部の空白は0とされます。

12345.67

5

3

2

345.67

  • 整数部の桁があふれている場合

    整数部の左側2桁は入力されません。

1234.5678

4

0

4

0.5678

  • 整数部なしの場合

    整数部の有効桁が0のため,整数部はすべて切り捨てられます。

1.23

5

1

4

1.2300

  • 小数部の桁が不足している場合

    小数部の右側に0を加えられて,4桁に調整されます。

12.3456

3

2

1

12.3

  • 小数部の桁があふれている場合

    小数部の2桁目を丸めます。この例では,丸め方法に四捨五入を適用しています。

1234.56

4

4

0

1235

  • 小数部なしの場合

    小数部の有効桁が0のため,整数の値に丸めます。この例では,丸め方法に四捨五入を適用しています。

△△△△△

4

3

1

000.0

  • すべて1バイトの空白文字の場合

    すべての空白文字は0とされます。

(凡例)

△:半角スペース(空白)を示します。