佐藤と申します。

Fortranで数値計算をしていると
0.1D3とか0.1D-2という数字が出力されます。
そうしてできたファイルをrubyで処理したいと
思うのですが、rubyはこれらの表し方だとto_fをしても
思いどおりには扱ってくれません。

そこで

class String
  def dto_f
    self.sub(/[Dd]/,'e').to_f 
  end
end

puts '0.1D-3'.dto_f+'0.2d2'.dto_f

のようなメソッドを作ってみました。

しかしこれだと大量の数値を処理する際に置換のところで
時間を食うのではないかと思います。(GB程度のファイルを
扱うことはたまにあります)

そこで何か他の解決法がありましたら
教えていただけないでしょうか。

それではよろしくお願いします。