使用 int.parse 或 int.tryparse 并指定 numberstyles.allowthousands 标志即可将带千位分隔符的字符串转换为整数。该标志告诉解析器忽略字符串中的逗号,从而正确识别数值部分。

NumberStyles 枚举中哪些标志组合能处理货币符号?
若字符串包含货币符号(如 $),需结合 NumberStyles.Currency 或 NumberStyles.AllowCurrencySymbol 与 AllowThousands。单独使用 AllowThousands 无法处理前缀符号。

using System;
using System.Globalization;
class Program
{
static void Main()
{
string input = "$1,234.56";
// 尝试仅使用 AllowThousands
try
{
int result = int.Parse(input, NumberStyles.AllowThousands);
Console.WriteLine(result);
}
catch (FormatException)
{
Console.WriteLine("Format Error with AllowThousands only");
}
// 正确使用 Currency 风格
double resultDouble = double.Parse(input, NumberStyles.Currency, CultureInfo.InvariantCulture);
Console.WriteLine((int)resultDouble);
}
}
int.TryParse 在遇到无效格式时返回什么?
int.TryParse 不会抛出异常,而是返回 false 并将输出参数设为 0。这使其成为处理不可信输入的安全选择。

using System;
using System.Globalization;
class Program
{
static void Main()
{
string validInput = "1,234";
string invalidInput = "abc";
int output;
bool success1 = int.TryParse(validInput, NumberStyles.AllowThousands, CultureInfo.InvariantCulture, out output);
Console.WriteLine($"Valid: {success1}, Value: {output}");
bool success2 = int.TryParse(invalidInput, NumberStyles.AllowThousands, CultureInfo.InvariantCulture, out output);
Console.WriteLine($"Invalid: {success2}, Value: {output}");
}
}











