我想知道是否有一个函数将有理类型转换为Float(Rational a => a - > Float)。
我试过了hoogling,却一无所获。
答案 0 :(得分:24)
在Haskell中,您不会将转换为,而是将转换为。请参阅fromRational
。
threeHalves :: Ratio Integer
threeHalves = 3 % 2
sqrt threeHalves -- Fails
sqrt $ fromRational threeHalves -- Succeeds
如果您需要Rational -> Float
功能,可以将其定义为
toFloat x = fromRational x :: Float
答案 1 :(得分:3)
答案 2 :(得分:3)
还有fromIntegral将Int
和Integer
转换为Num
的任何实例。
foo :: Float -> Float
foo x = x+1
value :: Int
value = 4
newValue = foo (fromIntegral value)
答案 3 :(得分:2)
请注意,Rational
是一种类型,而不是类型类,因此Rational a => a
没有意义。请尝试用Rational -> Float代替。