c# - 将带点和逗号的数字转换为 double 会失败

标签 c# parsing decimal

<分区>

有一个看起来像“1.900,00”的字符串。如何将此字符串格式化为小数点 1900?

使用:

decimal.TryParse("1.900,00", out var vkp)

会给我一个错误的结果。我该如何处理?

这是在线 C# 编译器的 URL:https://dotnetfiddle.net/B5EyyC

最佳答案

您可以尝试使用 CultureInfo,它使用 '.' 作为千位分隔符和 ',' 作为小数点分隔符(例如 "de-DE").还有适当的 NumberStyles

string input = "1.900,00";
decimal.TryParse(input, 
    NumberStyles.AllowThousands | NumberStyles.AllowDecimalPoint, 
    CultureInfo.GetCultureInfo("de-DE"), out var output);

您甚至可以创建自己的 NumberFormatInfo 实例您可以在其中以任何您喜欢的方式指定 NumberDecimalSeparatorNumberGroupSeparator

关于c# - 将带点和逗号的数字转换为 double 会失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55165887/

相关文章:

Java- 小数点后 2 位四舍五入 *不仅仅是 %.2f*

c# - 在 ASP.Net 的 GridView 中获取 "checked"复选框的 rowID 值

c# - 将 NULL 传递给构造函数

c# - 在 C# 中使用 SqlDataReader 填充 List<T>

c# - .NET Garbage Collector的疑惑

c# - 比特币数字格式

html - C 语言的服务器实现

parsing - 帮助解析日志文件 (ANTLR3)

python - 解析多行日志文件,其中的上下文更改行

c# - 将 System.Double 转换为未缩放的值和比例