在c#中递增十进制数

本文关键字:十进制数 | 更新日期: 2023-09-27 18:17:42

我正在学习XNA (c#)的初学者教程,一旦我学会了渲染和定位,我就偏离了自己的方向,有了自己的游戏开发经验。

我想在我的类Ship上创建一个属性VelocityY。我希望能够以十进制的值来增加这个值,例如:

VelocityY += 0.45;

我认为float是这里需要的类型,但是当我尝试编译时,我得到这个错误:

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

我不太确定第一部分是什么意思,因为我还没有利用double据我所知。VelocityY的声明如下:

public float VelocityY = 0;

我尝试使用double甚至int代替,但我仍然不能增加非整数。

在c#中递增十进制数

字面值0.45的类型为double。如果你想让它成为浮点数,使用后缀fF,就像编译器错误提示:

VelocityY += 0.45F;

基本上,如果不为包含小数点的字面值指定后缀,则隐式为double。您可以使用后缀使其显式:

decimal a = 0.45M;
float b = 0.45F;
double c = 0.45D;

你应该改变

public float VelocityY = 0;
to
public double VelocityY = 0;

VelocityY += 0.45;
to
VelocityY += 0.45F;

默认情况下,你给出的0.45或0.68的值在c#环境中都是双值,但在这里你需要告诉编译器你给出的数字是浮点数,并在其后面加上后缀F