倍精度小数をテキスト形式で保存する場合には、10進数の有効桁数N桁表示で表すのが妥当だと考えています。 (例: 1.23456e+10, などこの場合有効数字6桁)

無限に有効数字の桁数をとれるのであるならば、それは倍精度小数に再変換した際にも、もともとの数字に戻ってくることが保証できるような気がします。しかし、リソースは有限なので、必要以上の桁数を保存するのは無駄です。

質問

  • 倍精度浮動小数を10進数の有効数値表示で保存する場合、元々の数字に必ず戻ってこれるような有効桁数のうち、最小のものはいくつですか?
  • 2進数有効桁数表示である倍精度浮動小数と、10進数有効桁数表示の、形式の違いによって丸める必要が発生した場合、それは一番近い表現可能な値へと丸めることとします。