在 Haskell 中转换 Double -> Float 的推荐方法

recommended way to convert Double -> Float in Haskell

惯用的方法是什么Double -> Float

uncurry encodeFloat . decodeFloat吗?

(我用的是gloss,这需要浮点数)

找到此类问题的答案的推荐方法是什么?

我正在尝试 this hoogle query 但答案都非常无用 (试一试 - 它在列表顶部有 unsafeCoerce

使用 <a href="https://hackage.haskell.org/package/base/docs/Prelude.html#v:realToFrac" rel="noreferrer">realToFrac</a> :: (实数 a, 小数 b) => a -> b.

它将任何实数类型(如IntFloatDouble)转换为任何小数类型(如FloatDoubleRational)。

请注意,尽管此函数的一般定义 (fromRational . toRational) 通过 Rational 类型执行缓慢​​的转换,there are rewrite rules 使用更有效的实现来实现 FloatDouble.