我是 C# 的新手,我不知道为什么在这些代码行中出现以下错误。
“错误 CS0266:无法将类型 'double' 隐式转换为 'float'。存在显式转换(您是否缺少强制转换?)”
float rightEdgeOfFormation = (float) transform.position.x + (width * 0.5);
float leftEdgeOfFormation = (float) transform.position.x - (width * 0.5);
我以为写作(浮动)是演员?
非常感谢!
类型转换在所有其他操作中具有最高优先级。因此,(float) transform.position.x
在 之前进行评估+ (width * 0.5)
。然而,(width * 0.5)
是一个double
表达式,因为常量0.5
是一个double
常量。(0.5f
如果您希望它是 ,则应该使用它float
。)并且在添加 afloat
和 a 时double
,C# 总是“提升” float
to double
。所以,的结果float + double
是 a double
,然后它不能分配给 a float
。
为了解决这个问题,无论是放在括号整个表达式铸造之前float
,或者让你0.5
一float
写它作为常数0.5f
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句