ここでは,入力データが数値(固定小数点数)の場合の端数処理について説明します。
入力データの数値が小数の場合,小数点位置を合わせて入力します。入力データ中に小数点がない場合,データの末尾に小数点を仮定して入力します。入力データの桁に過不足がある場合は,桁調整を行った内部データ形式に変換されたあと,比較されます。
入力データの数値の扱いを次に示します。
- 整数部の桁調整
- 有効桁数に満たないデータを入力した場合,左側に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とされます。
|
- (凡例)
- △:半角スペース(空白)を示します。