什么是惯用的方式Double -> Float
?
是uncurry encodeFloat . decodeFloat
吗?
(我正在使用gloss
,这需要Floats)
找到这些问题答案的推荐方法是什么?
我正在尝试this hoogle query,但答案都非常无益
(尝试一下 - 它在列表的顶部有unsafeCoerce
)
答案 0 :(得分:19)
使用realToFrac :: (Real a, Fractional b) => a -> b
。
它会将任何实数类型(如Int
,Float
或Double
)转换为任何小数类型(例如Float
,Double
或{{ 1}})。
请注意,即使此函数的一般定义(Rational
)通过fromRational . toRational
类型进行了缓慢转换,there are rewrite rules也会在Rational
之间使用更高效的实现进行转换}和Float
。