Haskell中的floor和truncate有区别吗

2023-12-27

两者之间的功能是否存在差异floor and truncate在哈斯克尔?

它们似乎执行相同的功能并且具有相同的类型签名:

  • truncate :: (Integral b, RealFrac a) => a -> b
  • floor :: (Integral b, RealFrac a) => a -> b

是的,对于负数。如果我们阅读文档,我们会看到:

truncate :: Integral b => a -> b

truncate x返回最接近的整数x零和之间x

and:

floor :: Integral b => a -> b

floor x返回不大于的最大整数x

所以如果我们输入一个负数, like -3.5我们获得:

Prelude> truncate (-3.5)
-3
Prelude> floor (-3.5)
-4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Haskell中的floor和truncate有区别吗 的相关文章

随机推荐