2011-12-14 81 views
2

我正在通過XNA(C#)的初學者教程,並且一旦學習了渲染和定位,並擁有自己的遊戲開發經驗,就已經按自己的方向轉向了自己的方向。在C#中增加十進制數

我正在嘗試在我的課Ship上創建一個屬性VelocityY。我希望能夠通過是十進制值,即增加此值:

VelocityY += 0.45; 

我想通float在這裏所需要的類型,但是當我嘗試編譯我得到這個錯誤:

Literal of type double cannot be implicitly converted to type 'float'; use an 'F' suffix to create a literal of this type.

據我所知,我並不確定第一部分是什麼意思,因爲我沒有使用doubleVelocityY聲明如下:

public float VelocityY = 0; 

我嘗試使用double甚至int代替,但我還是無法通過非整數遞增。整個數字工作正常。

回答

7

文字0.45的類型是double。如果你想成爲一個浮動,使用後綴fF,如編譯器錯誤說:

VelocityY += 0.45F; 

基本上,如果你不指定文字,包括小數點的後綴,它的隱含double 。您可以使用一個後綴,使其明確:

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

謝謝。是否將類型更改爲`double`的原因可能是因爲該值用於增加'Vector2.Position.Y`,我認爲它不是`double`?如果是這樣,這一切都是有道理的。 – Marty 2011-12-14 06:44:41

+0

是的,它應該是全部是'雙'或全部是'浮動'。 – 2011-12-14 06:48:26

1

你應該改變

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

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

默認情況下,你給所有值0.45或0.68在C#雙環境,但在這裏你需要說編譯器,你給的數字是浮動的,爲它添加一個後綴F

variable + = 0.45F;

相關問題