Ответ 1
Используйте realToFrac :: (Real a, Fractional b) => a -> b
.
Он преобразует из любого действительного числа (например, Int
, Float
или Double
) в любой дробный тип (например, Float
, Double
или Rational
).
Обратите внимание, что хотя общее определение этой функции (fromRational . toRational
) выполняет медленное преобразование через тип Rational
, существуют правила перезаписи, которые используют более эффективные реализации для преобразований между Float
и Double
.