千位分隔值为整数

本文关键字:整数 分隔 千位 | 更新日期: 2023-09-27 17:57:55

我想将一千个分隔的值转换为整数,但遇到一个异常。

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

工作正常,正在获取d=100100100

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

正在获取一个格式异常

输入字符串的格式不正确

为什么?

千位分隔值为整数

试试这个:

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 
}

Convert.ToInt32在您的示例中实际调用的是Int32.Parse.

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

由于您的包含逗号,它引发了一个异常。

因为您应该指定一个字符串,该字符串包含一个纯整数(可能前面有+/-号),没有千分隔符。在将字符串传递给ToInt32例程之前,必须替换分隔符。

不能有分隔符,只能有数字0到9和可选符号。

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