数値精度とデータ変換
テキストに書かれた桁数を、読み込み側の数値型が正確に表せるとは限りません。型を決め、変換後の値を確認します。
最初に結論
ID、金額、測定値について、整数・正確な小数・近似値のどれを意味するか決めてから表現方法を選びます。
テキストの桁数と数値型の精度は異なる
JSONの数値構文は、すべての読み手が同じ数値型を使うことまでは定めません。RFC 8259はbinary64が広く使われているとし、その実装間では -(2^53)+1 から (2^53)-1 の整数を正確に共有できると説明しています。元のテキストに全桁が残っていても、パーサーがそれより大きな整数や小数を丸めることがあります。
値の意味に合う表現を選ぶ
計算に使わない長い識別番号は文字列として保持します。金額や厳密な小数には、仕様を決めた10進数表現か単位を合意した整数を使います。誤差を許容できる測定値には浮動小数点数が候補です。Avroのdecimal論理型なども、読み手側の対応と精度設定が必要です。
変換の前後で値を確かめる
入出力の型、最大値、有効桁数、丸め方、null、単位を確認します。境界値を試し、代表データを往復変換して比較します。RFC 8785などのJSON正規化方式はIEEE 754 binary64の数値制約を置くため、任意精度の数値を保つ手段にはなりません。