相关疑难解决方法(0)

为什么ghci说1.1 + 1.1 + 1.1> 3.3是真的?

我最近经历了一个Haskell教程,并在交互式ghcishell中尝试一些简单的Haskell表达式时注意到了这种行为:

Prelude> 1.1 + 1.1 == 2.2
True
Prelude> 1.1 + 1.1 + 1.1 == 3.3
False
Prelude> 1.1 + 1.1 + 1.1 > 3.3
True
Prelude> 1.1 + 1.1 + 1.1
3.3000000000000003
Run Code Online (Sandbox Code Playgroud)

有谁知道那是为什么?

haskell floating-accuracy ghci

8
推荐指数
6
解决办法
1246
查看次数

Haskell方程在实数中求解

我刚刚开始玩GHCi.我看到列表生成器基本上解决了给定集合中的等式:

Prelude> [x | x <- [1..20], x^2 == 4]
[2]
Run Code Online (Sandbox Code Playgroud)

(根据预期只找到一个根)

现在,我为什么不能解决在ℝ结果方程式,因为该解决方案包括在指定范围内?

[x | x <- [0.1,0.2..2.0], x*4 == 2]
Run Code Online (Sandbox Code Playgroud)

如何在实数集中解决这些方程式?

编辑:对不起,我的意思0.1当然.

math precision haskell list-comprehension equation-solving

2
推荐指数
2
解决办法
1538
查看次数

Haskell返回错误的结果

可能重复:
Haskell:表达式[0,0.1 .. 1]的意外输出

在Haskell中,有谁知道以下结果的原因?

Prelude Data.List> map (\x -> x - 0.1) [0.2,0.3..0.9]

[0.1,0.19999999999999998,0.29999999999999993,0.3999999999999999,0.4999999999999999,0.5999999999999998,0.6999999999999996,0.7999999999999995]
Run Code Online (Sandbox Code Playgroud)

代替

[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8]
Run Code Online (Sandbox Code Playgroud)

double haskell ghci

-1
推荐指数
1
解决办法
131
查看次数