2012-02-01 60 views
1

我有以下代碼:錯誤的int.Parse()

int a = 50; 
float b = 50.60f; 

a = int.Parse(b.ToString()); 

在運行時此分析給出的錯誤。爲什麼這是請引導我。

感謝

+1

float不是int。此外,這段代碼沒有多大意義。如果你想擺脫小數,使用'a =(int)b'。 – 2012-02-01 09:30:23

+0

你能解釋一下你在這裏做什麼? – uday 2012-02-01 09:31:22

回答

4

它試圖解析字符串「50.6」 - 不能被解析爲整數,因爲50.6 不是整數。從the documentation

s參數包含了許多形式:

也許你要分析它回爲一個浮動,然後爲一個整數?

a = (int) float.Parse(b.ToString()); 
2

您試圖將不表示整數的字符串解析爲整數。

這就是爲什麼你會得到一個例外。

1

錯誤信息是否不夠詳細?

輸入字符串格式不正確。

int.Parse必須帶一個可以解析爲整數的字符串。字符串「50.6」不符合要求!

2

它給出了一個錯誤,因爲你試圖解析爲int代表一個浮點的字符串。

float b = 50.60f; // b = 50.6 
        // b.ToString() = "50.6" or "50,6" depending on locale 
        // int.Parse("50.6") MUST give an error because "50.6" is 
        // not a string representation of an integer 

你想要做什麼?將float轉換爲int?只是這樣做:

float b = 50.6f; 
int a = (int)b; 

這將截斷B的簡單值。

還是你想四捨五入到最接近的整數?

int a = (int)Math.Round(b);