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

d8d*_*f42 14 floating-point haskell coercion

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

uncurry encodeFloat . decodeFloat吗?

(我正在使用gloss,这需要Floats)

找到这些问题答案的推荐方法是什么?

我正在尝试这个hoogle查询,但答案都非常无益(尝试一下 - 它unsafeCoerce位于列表的顶部)

ham*_*mar 19

使用realToFrac :: (Real a, Fractional b) => a -> b.

它从任何实数类型(如Int,FloatDouble)转换为任何小数类型(如Float,DoubleRational).

请注意,即使此函数(fromRational . toRational)的一般定义通过Rational类型进行缓慢转换,也存在重写规则,这些规则使用更高效的实现来实现Float和之间的转换Double.