在C#中递增十进制数

时间:2011-12-14 06:39:41

标签: c# floating-point numbers

我正在学习XNA(C#)的初学者教程,并且在学习渲染和定位后,我已经朝着自己的方向转向,拥有自己的游戏开发经验。

我试图在我的班级VelocityY上制作一个属性Ship。我希望能够通过十进制值增加此值,即:

VelocityY += 0.45;

我认为float是此处所需的类型,但是当我尝试编译时,我收到此错误:

  

double类型的文字不能隐式转换为' float&#39 ;;使用' F'后缀来创建这种类型的文字。

我并不确定第一部分是什么意思,因为据我所知,我还没有使用doubleVelocityY声明如下:

public float VelocityY = 0;

我尝试使用double甚至int,但我仍然无法通过非整数增加。整数都很好。

3 个答案:

答案 0 :(得分:7)

文字0.45的类型是double。如果你想让它成为一个浮点数,请使用后缀fF,就像编译错误所说:

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;