使用迭代函数作为4(迭代(+0.001)1.0),我得到的答案是[1.0,1.001,1.0019999999999998,1.0029999999999997]
但要增加0.001并回答为[1.0,1.001,1.002,1.003]如何舍入值?
提前致谢
答案 0 :(得分:3)
您可以使用Data.Fixed:
import Data.Fixed
xs1 = take 4 $ iterate (+0.001) (1.0::Fixed E3)
-- or you can use Enum instance for (Fixed a) also
xs2 = take 4 [1.0::Fixed E3, 1.001..]
答案 1 :(得分:0)
这可以通过Rational和Fixed来完成:
x = take 4 $ map (fromRational) [1.000::Rational, 1.001..]
这可能也很有用,因为Rational可能更容易使用,例如:
map (logBase 10 . fromRational) $ take 4 [1.000::Rational, 1.001..]