# 小数部桁数

フォーマット情報、データ加工情報設定（マッピング情報）で定義する「小数部桁数」は、データを10進数に変換したときの小数部桁数です。

(1) 入力の小数部桁数

入力データを10進数に変換したとき、そのうち何バイトを小数部とみなすかを設定します。下記にその例を示します。

図4.108 入力の小数部桁数

この例では、Bタイプ2バイトのデータを10進数「12345」に変換し、さらに小数部桁数=2の設定に従って下位2バイトを小数部とみなし、「123.45」に変換しています。

(2) 出力の小数部桁数

出力データに対して小数部を何バイト出力するかを設定します。下記にその例を示します。

図4.109 出力の小数部桁数

この例では、入力の例と同じくBタイプ2バイトのデータを「123.45」に変換しています。その後、出力の設定では「小数部桁数」が"1"となっているので、小数部を1桁として出力データを「123.4」と考えます。出力側の設定は9タイプ5バイトなので、先頭に「0」を詰めてバイト数を合わせて「01234」と変換しています（数値データには小数点はつかないため）。

(3) 小数部桁数の設定例

a) 項目タイプ⇔項目タイプ間の小数部桁数

項目タイプ間の変換におけるバイト数と小数部桁数の関係例を下記に示します。

表4.19 小数部桁数が設定された場合の変換例（フォーマット⇔フォーマット）

入力データ フォーマット | 出力データ フォーマット | 入力データ | 出力データ
--- | --- | --- | ---
バイト数 | 小数部桁数 | バイト数 | 小数部桁数 | 内部表現 | 値 | 内部表現 | 値
5 | 0 | 7 | 0 | 12345 | 12345 | 0012345 | 0012345
5 | 2 | 7 | 0 | 12345 | 123.45 | 0000123 | 0000123
5 | 2 | 7 | 1 | 12345 | 123.45 | 0001234 | 000123.4
5 | 2 | 7 | 2 | 12345 | 123.45 | 0012345 | 00123.45
5 | 2 | 7 | 4 | 12345 | 123.45 | 1234500 | 123.4500
5 | 2 | 7 | 5 | 12345 | 123.45 | 2345000 | 23.45000
5 | 2 | 7 | 7 | 12345 | 123.45 | 4500000 | 0.450000

b) 項目タイプ→CSVまたはXMLの小数部桁数

項目タイプ→CSV数値またはXML数値の変換におけるバイト数と小数部桁数の関係例を下記に示します。

表4.20 小数部桁数が設定された場合の変換例（フォーマット→CSVまたはXML）

入力データフォーマット | 入力データ | CSV、XML形式データ
--- | --- | ---
項目タイプ | バイト数 | 小数部桁数 | 内部表現 | 値
9 | 5 | 2 | 0x3132333435 | 123.45
P | 5 | 2 | 0x000012345D | -123.45
S | 5 | 2 | 0x3132333455 | -123.45
B | 4 | 2 | 0x00003039 | 123.45

注意

上の表では、負の内部符号に「d」を、ゾーン符号に「3」を、負の外部符号に「5」を使用しています。

c) CSVまたはXML→項目タイプの小数部桁数

CSV数値またはXML数値→項目タイプの変換におけるバイト数と小数部桁数の関係例を下記に示します。

表4.21 小数部桁数が設定された場合の変換例（CSVまたはXML→フォーマット）

入力データ | 出力データフォーマット | 出力データ
--- | --- | ---
CSVまたはXML | 桁数 | 小数部桁数 | 項目タイプ | 内部表現 | 値
123.45 | 5 | 0 | 9 | 00123 | 00123
123.45 | 5 | 2 | 9 | 12345 | 123.45
123.45 | 5 | 4 | 9 | 34500 | 3.4500
123.45 | 7 | 2 | 9 | 0012345 | 00123.45
123.45 | 7 | 4 | 9 | 1234500 | 123.4500
123.45 | 7 | 7 | 9 | 4500000 | 0.4500000