应用程序处理表示来自不同文化的小数的字符串。 例如“1.1”和“1,1”是相同的值。
我尝试了 Decimal.TryParse
标志组合,但无法获得我想要的结果。 “1,1”最终变成了“11”或“0”。
是否可以在一行代码中将此类字符串转换为十进制,而无需预先将“,”字符替换为“。”或者玩 NumberFormat.NumberDecimalSeparator
?
你如何处理这种情况?
提前致谢!
最佳答案
您可以创建一个临时的 CultureInfo
对象,以便在解析时使用。
// get a temporary culture (clone) to modify
var ci = CultureInfo.InvariantCulture.Clone() as CultureInfo;
ci.NumberFormat.NumberDecimalSeparator = ",";
decimal number = decimal.Parse("1,1", ci); // 1.1
关于c# - 将字符串转换为十进制分隔符 "."和 ","不敏感方式的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4094179/