C#.Net核心-设置全局十进制分隔符,而不考虑区域性

C#.Net核心-设置全局十进制分隔符,而不考虑区域性,c#,.net-core,C#,.net Core,所以我有一台开发机器,它是一台荷兰机器和一台英语服务器。 现在,我需要将数据库中的值(如1.99(字符串))转换为十进制。 当我执行decimal.Parse(“1.99”)时,我得到了199.00。这(可能)是因为我的机器使用荷兰语设置,小数点的分隔符是,(逗号)。 现在,我如何将其设置为全局始终使用(点)作为分隔符,而不管请求的区域性或机器的本地设置如何 我使用的是.Net核心Web Api,您可以使用它将用作十进制分隔符 var number = decimal.Parse("1

所以我有一台开发机器,它是一台荷兰机器和一台英语服务器。 现在,我需要将数据库中的值(如1.99(字符串))转换为十进制。 当我执行
decimal.Parse(“1.99”)
时,我得到了199.00。这(可能)是因为我的机器使用荷兰语设置,小数点的分隔符是
(逗号)。 现在,我如何将其设置为全局始终使用
(点)作为分隔符,而不管请求的区域性或机器的本地设置如何

我使用的是.Net核心Web Api

,您可以使用它将
用作十进制分隔符

var number = decimal.Parse("1.99", CultureInfo.InvariantCulture);
如果不想在每个解析调用中设置区域性,可以创建一个扩展方法

public static class StringExtensions
{
    public static decimal ToDecimalInvariant(this string value)
    {
        return decimal.Parse(value, CultureInfo.InvariantCulture);
    }
}
然后像这样使用它

var number = myString.ToDecimalInvariant();

检查此文档:这是否回答了您的问题?我知道,但我想在全局范围内添加它,而不是在解析十进制数的任何地方。你可以创建一个扩展方法
ParseInvariant(string)
,也许这是最好的解决方案。我无法通过更改文化设置使其工作。THNX您还可以全局设置剪切。看见