Haskell没有二重积分的例子
我正在尝试使用Haskell对变量进行四舍五入Haskell没有二重积分的例子,haskell,double,rounding,integral,Haskell,Double,Rounding,Integral,我正在尝试使用Haskell对变量进行四舍五入 r :: Double -> Double r x = round (x) 试图编译这个,我得到以下错误 没有因使用“round”而产生的(整数双精度)实例 我怎样才能解决这个问题?谢谢大家! 这是合乎逻辑的,因为作为……实例的类型通常是“整型的”。因此,这意味着它的行为类似于一个整数。Integral的示例有Integer,Int,Word8,等等。Float,Double等不是整数,如错误所述 您可以使用将Integral类型的内容转换
r :: Double -> Double
r x = round (x)
试图编译这个,我得到以下错误
没有因使用“round”而产生的(整数双精度)实例
我怎样才能解决这个问题?谢谢大家! 这是合乎逻辑的,因为作为……实例的类型通常是“整型的”。因此,这意味着它的行为类似于一个
整数
。Integral
的示例有Integer
,Int
,Word8
,等等。Float
,Double
等不是整数,如错误所述
您可以使用将Integral
类型的内容转换为Num
erical类型:
r :: Double -> Double
r = fromIntegral . round
不,这不行。Double是一个frac,所以我不必使用fromIntegral将其声明为1,是吗?但是,它不起作用。“我得到了和以前一样的错误。@longroad:那么为什么前奏曲要用示例输出演示呢?”。
Double
是许多类型类的实例:Enum
,Num
,Eq
,Floating
,等等。因此from integral
将专用于Double
。您得到相同错误的事实表明,在其他地方存在另一个问题,触发相同(或非常类似)的错误消息。这是我文件中的全部代码:r::Double->Double rx=round(frompintegral(x))
,我在GHCi>GHCi,版本8.6.5:?为获取帮助[1/1]编译Main(\test.hs,expressed)test.hs:12:7:错误:*在表达式中使用round'*时没有出现(整数双精度)的实例,该表达式用于
r的表达式:round(frompintegral(x)):rx=round(frompintegral(x))| 12 | rx=round(frompintegral(x))| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^。
Prelude> r 14.25
14.0