我有以下代碼:錯誤的int.Parse()
int a = 50;
float b = 50.60f;
a = int.Parse(b.ToString());
在運行時此分析給出的錯誤。爲什麼這是請引導我。
感謝
我有以下代碼:錯誤的int.Parse()
int a = 50;
float b = 50.60f;
a = int.Parse(b.ToString());
在運行時此分析給出的錯誤。爲什麼這是請引導我。
感謝
它試圖解析字符串「50.6」 - 不能被解析爲整數,因爲50.6 不是整數。從the documentation:
s參數包含了許多形式:
也許你要分析它回爲一個浮動,然後投爲一個整數?
a = (int) float.Parse(b.ToString());
您試圖將不表示整數的字符串解析爲整數。
這就是爲什麼你會得到一個例外。
錯誤信息是否不夠詳細?
輸入字符串格式不正確。
int.Parse
必須帶一個可以解析爲整數的字符串。字符串「50.6」不符合要求!
它給出了一個錯誤,因爲你試圖解析爲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);
float不是int。此外,這段代碼沒有多大意義。如果你想擺脫小數,使用'a =(int)b'。 – 2012-02-01 09:30:23
你能解釋一下你在這裏做什麼? – uday 2012-02-01 09:31:22