浮動小数点数を10進表示する
言うだけなら簡単だが実はかなり奥が深い。もっとも単純な(そして、よく使われている)のはShowのインスタンスだろう。当然遅い。
code:haskell
show :: Double -> String
double-conversionはC++のライブラリのバインディングで、TextやByteStringに変換できる。精度やフォーマットを指定できるので便利。
code:haskell
toExponential :: Int -> Double -> Text
toFixed :: Int -> Double -> Text
toPrecision :: Int -> Double -> Text
toShortest :: Double -> Text
masonパッケージのdoubleDecは、Grisu3(2010 Florian Loitsch - Printing Floating-Point Numbers Quickly and Accurately with Integers)というアルゴリズムのC実装を呼び出し、ビルダーとして提供する。多分これが一番速いと思います(TODO: double-conversionのようなAPIを用意する)。
#浮動小数点数 #プリティプリント #文字列