2016-05-03 18 views
1

2つの数字、2.0と2.1があるとしましょう。表示するか、それぞれ "2"と "2.1"に変換する簡単な方法がありますか?Haskellで小数点位置のない浮動小数点整数を表示する簡単な方法は?

もちろん、showFFloat(Just 0)2 ""やshowFFloat Nothing 2 ""とすることもできますが、私は各引数に異​​なる引数を使用しています。

たとえば、2.0と2.1を示した後に文字列の末尾から ".0"を取り除くことができますが、それはうまく動作しますが、それはまったく単純ではありません。そして他の多くのソリューションがこの問題を解決していますが、私は単純な問題について考えることはできません。

+0

も ​​'ショー2.1'得なければなりません'' 2.1 '' - だから、ちょうど' '2.1' 'ではないと思いますか? – Carsten

+0

はい、しかしshow 2.0では "2"ではなく "2.0"が返されます。そしてそれは私が望むふるまいではありません – Totoro

答えて

4

浮動小数点数の印刷は、surprisingly hard taskです。それは、文字列の代わりに数字を返しますけれども、私はおよそ承知しているbaseパッケージ内の唯一の実装は、floatToDigits次のとおりです。

Prelude Numeric> floatToDigits 10 2.0 
([2],1) 
Prelude Numeric> floatToDigits 10 2.1 
([2,1],1) 

(結果の第二成分は指数である。)

+0

これは部分的に問題を解決しますが、私が必要とするものを得るにはまだ複雑すぎます。しかし、感謝:) – Totoro

関連する問題