2014-02-21 30 views
0
float x = 19.2F; 

據我所知,沒有F變量被假定爲double默認彩車上需要「F」。但是,這不是多餘的,因爲我們首先聲明變量爲float爲什麼在C#

有人可以解釋爲什麼會出現這種情況嗎?

+0

請拿出你的問題的態度。標題應爲「爲什麼在C#浮標需要‘F’」而不是「冗餘變量創作」 – Jason

回答

1

康拉德是正確的。

如果你認爲這是「口是心非」,你可以使用如。 var

var myFloat = 23f; 

田田的 「duplicit」 float走了:))

+0

遺憾的是似乎並沒有在Unity3d工作。 **錯誤** CS0825:上下文關鍵字'變種」只能出現在局部變量聲明 –

+0

@GhoulFool團結實際使用它是一個基於單聲道自己的C#編譯器(以及更多的東西)之內。但是,它不僅落後於MS C#(和.NET),而且落後於Mono。在C#3.0中增加了'var',而Unity則停留在C#2.0世界中(而且已經有一段時間了),所以你運氣不好,抱歉。我不得不拋棄Unity,因爲我真的想要C#4.0,但你只需堅持明確地說'float myFloat = 23f;'。 – Luaan

4

可以某種方式視爲是冗餘的。但這是爲了您的安全。簡單地說,有floatdouble之間不存在隱式轉換,因爲你可能會丟失信息(精度)。而且這可能是錯誤的,所以語言設計者決定讓你明確指出你知道這種轉換。