.NET文化是否以不同方式处理整数的规范表示?

整数的规范表示形式是一个ASCII十进制数字字符序列,只有在数字为负数时才带前缀“ - ”。 除了被表示的数字为零以外,没有最初的'0'。 没有其他字符,包括逗号,货币符号,空格,单位,“+”,小数点等

当给定一个包含整型规范表示的字符串时,任何.NET文化都会使int.TryParse向不变文化返回一个不同的值?

如果没有,.NET是否能保证未来可能添加的任何文化将继续以这种方式表现?

或者换句话说......如果我只关心这种输入的多样性,当调用int.TryParse时,是否需要指定不变的文化?


根据文化的不同,即使是负号也有不同的选择。 如果你做了

var numbers = from c in CultureInfo.GetCultures(CultureTypes.AllCultures)
              group c by c.NumberFormat.NumberNegativePattern into g
              select g;

然后检查numbers你会看到一些文化使用不同的选项来为负号,例如文化lolo-LA


作为一个经验法则,我将CultureInfo.InvariantCulture用于所有目的,除了将其显示给用户。

链接地址: http://www.djcxy.com/p/75099.html

上一篇: Do any .NET cultures handle canonical representations of integers differently?

下一篇: The correct separator to use in Excel get