Ich habe eine Funktion, die ein Doppel als Eingabe dauert, aber ich muss ein Int übergeben und es gibt mir diesen Fehler:Wie konvertiert man von Int zu Double?
keine Instanz für keine Instanz für (Fractional Int) aus einer Verwendung von '/ '
Hier sind meine Funktionen:
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)
ich bin nicht sicher, wie dieses Problem zu bekommen.
Ist so etwas wie die folgenden sind:
foo1 :: Int -> Int
foo1 x1 = foo2 $ convertToDouble $ (x1 + 1)
Ich weiß nicht über Haskell, aber ich habe das gefunden; Überprüfen Sie, ob es hilft: "Der übliche Weg, ein Int in ein Double zu konvertieren, ist fromIntegral, das den Typ (Integral a, Num b) => a -> b hat. Dies bedeutet, dass es einen Integral-Typ (Int und Integer) zu jedem numerischen Typ b, von dem Double eine Instanz ist. " –