我有一个函数,它接受一个double作为输入,但是我必须将一个Int传递给它,它给了我这个错误:
因使用'/'
而没有(Fractional Int)实例的实例以下是我的功能:
foo1 :: Int -> Int
foo1 x1 = foo2 (x1 + 1)
foo2 :: Double -> Int
foo2 x = round (((3244325 * x^343)/2352352656) - ((3432 * x^234)/45324645500) + ((23453 * x^21)/2534743435)
我不知道如何解决这个问题。
是否存在以下内容:
foo1 :: Int -> Int
foo1 x1 = foo2 $ convertToDouble $ (x1 + 1)
答案 0 :(得分:5)
使用fromIntegral
:
(Integral a, Num b) => a -> b
它会将整数类型(即Int,Integer等)转换为另一种Num类型。