ご存知のとおりdecimal fractions
(0.1など)、floating point
(doubleやfloatなど)として保存されると、内部的に「バイナリ形式」(IEEE 754)で表されます。また、小数部の中には、バイナリ形式で直接表現できないものもあります。
私が理解していないのは、この「変換」の精度です。
1.)浮動小数点自体に精度(つまり「重要」)を持たせることができますか?
2.)しかし、小数から小数への変換にも精度の低下がありますか?
質問:
小数から浮動小数点への変換時の最悪の場合の精度の低下(「すべての」可能な小数の場合)は何ですか?
(これを知りたい理由は、小数と2進数/浮動小数点の小数を比較するときに、精度を考慮に入れる必要があるためです...両方の数値が同一であるかどうかを判断するためです。この精度を厳密/正確にしたいのです。できるだけ(decimal fraction == binary fraction +/- precision)
例(架空のみ)
0,1 dec => 0,10000001212121212121212 (binary fraction double) => precision loss 0,00000001212121212121212
0,3 dec => 0,300000282828282 (binary fraction double) => precision loss 0,000000282828282