C# 千分位值到整数
我想将一千个分隔的值转换为整数,但得到一个异常C# 千分位值到整数,c#,C#,我想将一千个分隔的值转换为整数,但得到一个异常 double d = Convert.ToDouble("100,100,100"); 工作正常,并获得d=100100 int n = Convert.ToInt32("100,100,100"); 正在获取一个格式异常 输入字符串的格式不正确 为什么?因为您应该指定一个包含纯整数的字符串(前面可能有+/-符号),没有千分位符。在将字符串传递到ToInt32例程之前,必须替换分隔符。尝试以下操作: int i = Int32.Parse("
double d = Convert.ToDouble("100,100,100");
工作正常,并获得d=100100
int n = Convert.ToInt32("100,100,100");
正在获取一个格式异常
输入字符串的格式不正确
为什么?因为您应该指定一个包含纯整数的字符串(前面可能有+/-符号),没有千分位符。在将字符串传递到ToInt32例程之前,必须替换分隔符。尝试以下操作:
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
}
你不能有分隔符,只有数字0到9和可选符号 在您的示例中,实际调用的是
Int32.parse(string)
方法只允许三种类型的输入:空白、符号和数字。在以下配置中[ws][sign]位[ws](括号内为可选)
由于您的包含逗号,因此引发了异常 我想OP已经收集到了这一点,但正在询问为什么会这样。编辑时添加了解释。我不想这么说,但我怀疑“为什么?”是“因为”,我怀疑整数没有逗号或句点是任意决定的。Int32.Parse也可以有一个格式参数:Int32.Parse(“100100”),NumberStyles.allowthesands,CultureInfo.InvariantCulture);Int32.TryParse的默认NumberStyles为NumberStyles.Integer,因此要添加可选的千位分隔符,NumberStyles应为(NumberStyles.Integer | NumberStyles.AllowThusands)NumberStyles.AllowThusands,这样可以避免我拔头发。非常感谢。