Haskell Converting Int to Float

У меня возникли проблемы с одной из функций, в которой я новичок, это функция fromIntegral.

По сути, мне нужно принять два аргумента Int и вернуть процент чисел, но когда я запускаю свой код, он продолжает выдавать мне эту ошибку:

Код:

percent :: Int -> Int -> Float
percent x y =   100 * ( a `div` b )
where   a = fromIntegral x :: Float
        b = fromIntegral y :: Float

Ошибка:

No instance for (Integral Float)
arising from a use of `div'
Possible fix: add an instance declaration for (Integral Float)
In the second argument of `(*)', namely `(a `div` b)'
In the expression: 100 * (a `div` b)
In an equation for `percent':
    percent x y
      = 100 * (a `div` b)
      where
          a = fromIntegral x :: Float
          b = fromIntegral y :: Float

Я прочитал прелюдию Haskell '98 и он говорит, что есть такая функция, называемая fromInt, но она никогда не работала, поэтому мне пришлось использовать ее, но она все еще не работает. Помощь!

5
задан mskfisher 15 May 2012 в 14:16
поделиться