逆の、『文字列への変換』は「ToString()」という強力なメソッドがあるので、たかをくくっていたが、『実数(double)への変換』でこんなに苦労するとは思わなかった。

double.Parse(str)

はとても脆弱で落ちまくる。
ここにあるようにtryを使うか

double.TryParse(str, out dbl)

を使わないとダメだ。後者で対応。