c# - 将字符串转换为十进制分隔符 "."和 ","不敏感方式的最佳方式?

标签 c# .net type-conversion

应用程序处理表示来自不同文化的小数的字符串。 例如“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/

相关文章:

dictionary - 在 Julia 中将 Dict 转换为 DataFrame

c# - 异步任务之间的依赖关系

C#:引发继承事件

c# - C#/VB.NET using 语句实际上对未实现 IDisposable 的类执行任何操作吗

c# - 如何指定用于 WebClient 类的 SSL 协议(protocol)

c++ - 显式 bool 运算符 - 无法返回、测试、初始化 bool

c# - 未发送 HttpClient 身份验证 header

c# - 为什么 ReSharper 建议我将 for 循环转换为 LINQ 表达式?

c# - 理解以下 lambda

Python-无法将列表转换为字符串