为什么:
decimal.Parse("1,2,3,45", CultureInfo.InvariantCulture)
返回小数12345,但是:
int.Parse("1,2,3,45", CultureInfo.InvariantCulture)
抛出异常?我希望对于相同的文化,逗号的处理方式是相同的。如果decimal.Parse
返回12345,为什么int.Parse
也不返回12345?
答案 0 :(得分:16)
int的默认NumberStyles
是Integer
:
Integer表示使用AllowLeadingWhite,AllowTrailingWhite和AllowLeadingSign样式。这是一种复合数字样式。
与Number
(用于decimal
)比较:
Number表示使用AllowLeadingWhite,AllowTrailingWhite,AllowLeadingSign,AllowTrailingSign,AllowDecimalPoint和AllowThousands样式。这是一种复合数字样式。
如果您需要更多内容,请使用接受NumberStyles
的重载,并提供(例如)NumberStyles.Number
或NumberStyles.Any
:
int i = int.Parse("1,2,3,45", NumberStyles.Number, CultureInfo.InvariantCulture);