我收到了这个非常奇怪的错误,
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
答案 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。