Bus errorとSegmentation faultに困ったら見るブログ

物理の研究者による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)

【Haskell】桁数を制限したいとき

(過去記事のコピペなので内容が古いかも知れません)

Doubleなどの値をそのままprintすると、17桁表示されてしまう
定義上1.0になるべき値も17桁まで表示すると、計算誤差の都合で17桁目で1.0からずれてしまうことがある

そこで表示する桁数を絞って表示したくなる。

そのためにはshowFFloatなどを用いれば良いらしい
他にもあるのかもしれないが、ググってもこれしかHITしなかった・・・

■ 参考
hackage.haskell.org

sirocco.hatenadiary.org


import Numeric
read (showFFloat (Just 10) Value "") ::Double)

valueには桁数を落としたい数字を入れる
Just の後の10で桁数を決められる。
このままでは返り値がChar型になっているので、read関数を使ってDoubleに変換する

こんな感じでいいのだろうか?