在Haskell中打印时将Float格式化为Int

这个 Haskell程序打印“1.0”如何让它打印“1”?
fact 0 = 1
fact x = x * fact (x-1)

place m n = (fact m) / (fact n) * (fact (m-n))

main = do   
   print (place 0 0)

解决方法

通过使用/ operation,您要求haskell使用小数数据类型.在这种情况下,您可能不希望这样.最好使用整数类型,如Int或Integer.所以我建议你做以下事情:
1.为事实函数添加一个类型声明,类似于fact :: Integer – >整数
2.使用quot代替/.

所以你的代码应该是这样的:

fact :: Integer -> Integer
fact 0 = 1
fact x = x * fact (x-1)

place :: Integer -> Integer -> Integer
place m n = (fact m) `quot` (fact n) * (fact (m-n))

main = do   
   print (place 0 0)

此外,正如@leftaroundabout所指出的,您可能希望使用更好的算法来计算这些二项式数.

相关文章

Css3如何实现鼠标移上变长特效?(图文+视频)
css3怎么实现鼠标悬停图片时缓慢变大效果?(图文+视频)
jquery如何实现点击网页回到顶部效果?(图文+视频)
css3边框阴影效果怎么做?(图文+视频)
css怎么实现圆角边框和圆形效果?(图文+视频教程)
Css3如何实现旋转移动动画特效