Int32.Parse错误FormatException

时间:2012-02-07 07:44:22

标签: c#

我收到了这个非常奇怪的错误,

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

5 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

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

这会将它解析为double然后将其转换为int,从而导致结果为您提供值为455的int。

答案 2 :(得分:1)

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

455.55

不是整数,而是double

455

是一个整数。

答案 3 :(得分:0)

您要做的是将十进制(或双精度)放入整数。试试:

double.Parse("455.55");

答案 4 :(得分:0)

您正尝试使用Int32解析浮点。你必须使用Double.parse。