【发布时间】:2018-09-01 14:08:22
【问题描述】:
我正在尝试编写一个简单的代码来使用 haskell 获得 PI 的近似值。然而,似乎程序预测除法的结果是一个整数,即使除法从来都不是精确的(再次,它是 PI)......或者至少这是我所理解的:P
代码如下:
divpi :: Integer -> Double
divpi k = (((fatc (6*k)) * ((545140134*k) + 13591409))/((fatc (3*k)) * (pot (fatc k) 3) * (pot (-262537412640768000) k)))
fatc 是阶乘(fatc 数),pot 是整数幂(pot base exponent)
错误信息:
ERROR file:.\haskel.hs:33 - Type error in explicitly typed binding
*** Term : divpi
*** Type : Integer -> Integer
*** Does not match : Integer -> Double
如果需要,here 是整个代码
【问题讨论】:
-
您使用哪个编译器/环境?它看起来不像 gch 的错误信息
-
wiki.haskell.org/Converting_numbers tldr: (1) 类型必须显式转换,(2) 整数没有定义除法,先转换
标签: haskell floating-point integer syntax-error