首页 > 解决方案 > .net 核心应用程序在 linux docker 容器中解析小数

问题描述

当应用程序在 Windows 开发机器上运行时,以下代码在 .net core 2.0.0 应用程序中运行良好。当应用程序部署在 linux docker 容器中时,它会失败并显示异常消息:System.FormatException:'输入字符串格式不正确。'

为什么?解决方法是什么?

class Program {
    static void Main(string[] args) {
        var value = "$291.00";
        var valueAsDecimal = decimal.Parse(value, System.Globalization.NumberStyles.Any);
        Console.WriteLine(valueAsDecimal);
        Console.ReadLine();
    }
}

标签: c#parsing.net-corecross-platformglobalization

解决方案


货币符号是特定于语言环境的。你检查过文化设置是什么吗?

如果你总是想使用 '$' 和 '.' 然后使用格式提供者。

 var valueAsDecimal = decimal.Parse(
     value, 
     NumberStyles.Any, 
     new CultureInfo("en-AU");

推荐阅读