2012-02-07 122 views
0

我得到这个非常奇怪的错误,Int32.Parse错误出现FormatException

Int32.Parse("455.55"); // gives Format Exception Error 


[FormatException: Input string was not in a correct format.] 
    System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +9586043 
    System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +119 
    System.Int32.Parse(String s) +23 
+1

值的int “455.55”不可解析为int32。你期望这会返回什么?一个等于455.55的整数? – kkm 2012-02-07 07:48:00

+0

感谢您的答案。我的部分愚蠢的错误。 :( – pokrate 2012-02-07 09:44:22

回答

2

455.55并不是一个Int32类型,因此例外。 (Int32的范围从约20亿到20亿,只有整数,即没有小数部分的数字。)如果你想要一个十进制数,使用double.Parse(“455.55”)。

0

你想要做的是把一个小数(或双)到一个整数。尝试:

double.Parse("455.55"); 
1

那是因为你试图解析变量不是一个整数

455.55 

不是整数,这是一个double

455 

是一个整数。

0

您试图用Int32解析浮点数。您必须改用Double.parse。

2

正如其他人所说的,你使用的值不是一个整数,而是一个浮点值。如果你真的希望它是一个int你可以这样做:

(int)double.Parse("455.55"); 

这将其解析为双然后将其转换为int导致的结果给你的455

相关问题