No toFloat в Haskell
Интересно, есть ли функция, которая преобразует рациональные типы в Float (Rational a = > a → Float).
Я пробовал hoogling, но ничего не нашел.
Ответы
Ответ 1
В Haskell вы не конвертируете, а из. См. fromRational
.
threeHalves :: Ratio Integer
threeHalves = 3 % 2
sqrt threeHalves -- Fails
sqrt $ fromRational threeHalves -- Succeeds
Если вам нужна функция Rational -> Float
, вы можете определить ее как
toFloat x = fromRational x :: Float
Ответ 2
fromRational?
Ответ 3
Существует также fromIntegral для преобразования Int
и Integer
в любой экземпляр Num
.
foo :: Float -> Float
foo x = x+1
value :: Int
value = 4
newValue = foo (fromIntegral value)
Ответ 4
Обратите внимание, что Rational
- это тип, а не тип, поэтому Rational a => a
не имеет смысла. Вместо этого попробуйте hoogling Rational → Float.