この章には、Web Services Client for C++での浮動小数点数の使用法についての参照情報があります。
XML 仕様では、浮動小数点数の IEEE 仕様を参照しています。この仕様では、float および double 型には、以下の精度があるとしています。
float では、1 > x > 1/223 の範囲の任意の数を表すことができる仮数部で、6 桁以上の精度を提供します。同様に double では、 1 > x > 1/252 の範囲の任意の数を表すことができる仮数部で、10 桁以上の精度を提供します。
浮動小数点数を表示する際には、丸め誤差などによる不正確さが明らかにないならないようにする必要があります。したがって、float 型で正しい精度のレベルを確保するためには、
printf( "%f", myFloat);
と指定するのではなく、以下のフォーマット設定コマンドを使用する必要があります。
printf( "%.6g", myFloat);
同様に、double 型で正しい精度のレベルを確保するためには、
printf( "%f", myDouble);
と指定するのではなく、以下のフォーマット設定コマンドを使用する必要があります。
printf( "%.10g", myDouble);