1

文化 nb-NO 有“”(空格)作为千位分隔符(数字组分隔符、货币组分隔符等),但也很常见键入“。” (时期)。小数点分隔符为“,”。

如何分配多个千位分隔符?

4

2 回答 2

2

如果您知道分隔符是什么或知道一个列表,请使用Int.TryParse并传入代表分隔符的不同区域性。例如:

using System.Globalization;

...

string number; // Contains number to parse
int parsedNumber;
List<CultureInfo> cultures = new List<CultureInfo>()
{
    Cultureinfo.InvariantCulture,
    new CultureInfo("en-US"),
    ... // Insert other cultures here
};
CultureInfo matchingCulture = cultures.FirstOrDefault(cultureInfo =>
    Int.TryParse(number, out parsedNumber, 
        NumberStyles.AllowThousands, cultureInfo));
if(matchingCulture != null)
{
    // parsedNumber contains the parsed number and matchingCulture contains 
    // the culture that parsed it
}

如果分隔符没有由不同的区域性表示,请考虑使用简单的 string.Replace() 将已知分隔符列表替换为单个已知分隔符,例如逗号。请注意,这可能会出现问题,例如,由于某些国家/地区的惯例冲突,千位分隔符与小数点一起使用。

于 2012-09-14T12:53:55.120 回答
1

如果找不到内置解决方案,您可以随时将可能不需要的字符替换为,空字符串,然后解析数字。

于 2012-09-14T12:54:12.870 回答