C# 将类型 double 转换为 float

爵士绿

我是 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# 总是“提升” floatto double所以,的结果float + double是 a double,然后它不能分配给 a float

为了解决这个问题,无论是放在括号整个表达式铸造之前float,或者让你0.5float写它作为常数0.5f

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章