我正在学习XNA(C#)的初学者教程,并且在学习渲染和定位后,我已经朝着自己的方向转向,拥有自己的游戏开发经验。
我试图在我的班级VelocityY
上制作一个属性Ship
。我希望能够通过十进制值增加此值,即:
VelocityY += 0.45;
我认为float
是此处所需的类型,但是当我尝试编译时,我收到此错误:
double类型的文字不能隐式转换为' float&#39 ;;使用' F'后缀来创建这种类型的文字。
我并不确定第一部分是什么意思,因为据我所知,我还没有使用double
。 VelocityY
声明如下:
public float VelocityY = 0;
我尝试使用double
甚至int
,但我仍然无法通过非整数增加。整数都很好。
答案 0 :(得分:7)
文字0.45的类型是double
。如果你想让它成为一个浮点数,请使用后缀f
或F
,就像编译错误所说:
VelocityY += 0.45F;
基本上,如果没有为包含小数点的文字指定后缀,则隐式double
。您可以使用后缀使其明确:
decimal a = 0.45M;
float b = 0.45F;
double c = 0.45D;
答案 1 :(得分:1)
你应该改变
public float VelocityY = 0;
to
public double VelocityY = 0;
或
VelocityY += 0.45;
to
VelocityY += 0.45F;
答案 2 :(得分:0)
默认情况下,在C#环境中,您给出的所有值为0.45或.68都是双倍的,但是在这里您需要说编译器,您给出的数字是浮点数,为它添加后缀F
。
变量+ = 0.45F;