推荐的方式转换Double - >漂浮在哈斯克尔

时间:2015-05-04 11:52:13

标签: haskell floating-point coercion

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

uncurry encodeFloat . decodeFloat吗?

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

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

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

1 个答案:

答案 0 :(得分:19)

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

它会将任何实数类型(如IntFloatDouble)转换为任何小数类型(例如FloatDouble或{{ 1}})。

请注意,即使此函数的一般定义(Rational)通过fromRational . toRational类型进行了缓慢转换,there are rewrite rules也会在Rational之间使用更高效的实现进行转换}和Float