2016-05-03 29 views
1

假设我们有2个数字,2.0和2.1。有一种简单的方法可以将它们分别显示或转换为“2”和“2.1”?在Haskell中显示无小数位的浮点整数的简单方法?

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

我可以,例如,条带” 0.0" ,如果存在的话,从字符串的结束后我显示2.0和2.1,而工作,但它是不完全简单。许多其他解决方案可以解决这个问题,但我无法想象一个简单的问题。

+0

以及'显示2.1'应产生'“2.1”' - 所以我猜这不完全是'2.1'? – Carsten

+0

是的,但显示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

相关问题