gpt4 book ai didi

haskell - 测试 Double 是否是 Haskell 中的整数值?

转载 作者:行者123 更新时间:2023-12-02 02:07:59 27 4
gpt4 key购买 nike

我有一个列表区域::[Double]。现在我想过滤此列表以查找实际上是整数值的值。我想为我的谓词做这样的事情:

isInteger :: Double -> Bool
isInteger x = abs (fromIntegral (floor x) - x) < delta
where delta = 0.00001

但是,我想有更好的方法来做到这一点。是否有 Haskell 习惯用法来检查实数是否为整数?

最佳答案

这对我来说看起来很好而且很惯用,尽管你可能想使用round而不是floor。您还可以考虑使用approxRational并检查结果的分母是否为1:

isInteger x = denominator (approxRational x 0.00001) == 1

关于haskell - 测试 Double 是否是 Haskell 中的整数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11173642/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com