| 概要
xtconvでフィールドオプション「oform」を使用すると変換結果が不正となり、正しく変換されない場合があります。
変換結果が変換先データ形式の有効桁数に収まらなかった場合、データが不正となる場合があります。
詳細
本現象は以下の条件を満たす時に発生します。
・フィールドオプションのoformを使用して書式整形している。
・oformのパラメータに%d、%ld、%f、%lfを使用している。
・変換結果が変換先データ形式の有効桁数に収まらない。
<32bit版Windows系OSで%fを使用した場合>
データ形式は倍精度浮動小数点として扱われます。
そのとき、有効桁数が15桁のため、16桁から不正な値となります。
例)oform="%16.0f"
の場合
変換前データ
変換後データ
999999999999999
9 → 999999999999999 8 |
また、書式整形によって値が変わってもxtconvの終了ステータスは正常終了となります。
対策
変換先データ形式の型を確認してoformをお使い下さい。
(変換先のデータ形式についての情報はC言語の説明書をご確認下さい。)
各プラットフォームによって差異がありますので各OSのマニュアルもご確認下さい。
桁数が15桁を越えるデータの書式変換の場合、入力データを作成するアプリケーション側で書式を整形し、xtconvではコード変換のみ行うようにして下さい。
状況
本件は制限事項とさせていただきます。
|