我想将一千个分隔值转换为整数,但我得到一个例外。
double d = Convert.ToDouble("100,100,100");
工作正常并获得d=100100100
int n = Convert.ToInt32("100,100,100");
获得一种格式异常
输入字符串的格式不正确
为什么?
答案 0 :(得分:25)
试试这个:
int i = Int32.Parse("100,100,100", NumberStyles.AllowThousands);
请注意,Parse
方法会在无效字符串上引发异常,因此您可能还想查看TryParse
方法:
string s = ...;
int i;
if (Int32.TryParse(s, NumberStyles.AllowThousands, CultureInfo.InvariantCulture, out i))
{
// if you are here, you were able to parse the string
}
答案 1 :(得分:1)
您的示例中实际调用的Convert.ToInt32是Int32.Parse。
Int32.parse(string)
方法只允许三种类型的输入:空格,符号和数字。在以下配置中[ws] [sign] digits [ws](在括号中是可选的)。
由于你的包含逗号,它引发了异常。
答案 2 :(得分:0)
因为你应该指定一个包含普通整数的字符串(可能以+/-符号开头),没有千位分隔符。您必须将分隔符替换为将字符串传递给ToInt32例程。
答案 3 :(得分:0)
你不能有分隔符,只有数字0到9,以及一个可选的符号。