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