我想将Double转换为GLfloat。
我想将其用于比较。

xM <- newIORef 0.0
zM <- newIORef 0.0
mobs <- newIORef []
mapM_ (\x -> colision x xM) mobs


暴民充满了一种方法。

colision mob xC = do
  xcama <- get xC
  --zcama <- get zC
  let menor = mob!!0
  let mayor = mob!!7
  --if xm>= xmin && xm <= xmax && zm >= zmin && zm <= zmax  then renderText (1, (-1.4)) $ "Dead"
  --else renderText (1, (-1.4)) $ "Warning..."
  renderText (1, (-1.4)) $ "Warning..."


当我尝试编译时,向我显示此错误:

“无法将类型'Foreign.C.Types.CDouble'与'Foreign.C.Types.CFloat'进行匹配
预期类型:GLfloat

实际类型:GLdouble

- - -解: - - -

我使用以下代码:

import GHC.Float
  d2f = realToFrac :: GLdouble -> GLfloat

最佳答案

在不同浮点类型(以及其他一些浮点类型,例如Rational)之间进行转换的通用函数为realToFrac

10-08 08:21