千位分隔值为整数

时间:2011-05-26 13:50:35

标签: c#

我想将一千个分隔值转换为整数,但我得到一个例外。

double d = Convert.ToDouble("100,100,100"); 

工作正常并获得d=100100100

int n = Convert.ToInt32("100,100,100");

获得一种格式异常

  

输入字符串的格式不正确

为什么?

4 个答案:

答案 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.ToInt32Int32.Parse

Int32.parse(string)方法只允许三种类型的输入:空格,符号和数字。在以下配置中[ws] [sign] digits [ws](在括号中是可选的)。

由于你的包含逗号,它引发了异常。

答案 2 :(得分:0)

因为你应该指定一个包含普通整数的字符串(可能以+/-符号开头),没有千位分隔符。您必须将分隔符替换为将字符串传递给ToInt32例程。

答案 3 :(得分:0)

你不能有分隔符,只有数字0到9,以及一个可选的符号。

http://msdn.microsoft.com/en-us/library/sf1aw27b.aspx