Haskell Integral Double 没有实例
Haskell No instance for Integral Double
我正在尝试使用 Haskell 对变量进行舍入。
r :: Double -> Double
r x = round (x)
试图编译这个,我收到以下错误
No instance for (Integral Double) arising from a use of 'round'
我该如何解决这个问题?谢谢!
这是合乎逻辑的,因为作为 Integral
实例的类型通常是 "integral"。因此,这意味着它的行为类似于 Integer
。 Integral
的例子有 Integer
、Int
、Word8
等。Float
、Double
等不是整数,例如错误说。
您可以使用 fromIntegral :; (Num b, Integral a) => a -> b
将 Integral
类型的内容转换为 Num
erical 类型:
r :: Double -> Double
r = <b>fromIntegral</b> . round
例如:
Prelude> r 14.25
14.0
我正在尝试使用 Haskell 对变量进行舍入。
r :: Double -> Double
r x = round (x)
试图编译这个,我收到以下错误
No instance for (Integral Double) arising from a use of 'round'
我该如何解决这个问题?谢谢!
这是合乎逻辑的,因为作为 Integral
实例的类型通常是 "integral"。因此,这意味着它的行为类似于 Integer
。 Integral
的例子有 Integer
、Int
、Word8
等。Float
、Double
等不是整数,例如错误说。
您可以使用 fromIntegral :; (Num b, Integral a) => a -> b
将 Integral
类型的内容转换为 Num
erical 类型:
r :: Double -> Double
r = <b>fromIntegral</b> . round
例如:
Prelude> r 14.25
14.0