在Haskell中显示没有小数位的浮点整数的简单方法是什么?

时间:2016-05-03 15:57:49

标签: string haskell floating-point

假设我们有2个数字,2.0和2.1。有一种简单的方法可以将它们分别显示或转换为" 2"和" 2.1"?

当然我可以做,例如showFFloat(Just 0)2""或showFFloat Nothing 2"",但是我为每个参数使用不同的参数,所以解决方案不适用于这两个数字。

例如,我可以在显示2.0和2.1之后从字符串的末尾删除" .0"(如果存在),这样可行,但它并不简单。许多其他解决方案解决了这个问题,但我无法想到一个简单的解决方案。

1 个答案:

答案 0 :(得分:4)

打印浮点数为surprisingly hard task。我所知道的base包中唯一的实现是floatToDigits,尽管它返回数字而不是字符串:

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

(结果的第二个成分是指数。)