如何从字符串十进制格式中检测法语或美国文化?

时间:2016-11-17 08:47:56

标签: c# cultureinfo

我有两个字符串:1.51,5

我想将此转换为十进制,但我想自动检测文化:点我们文化和逗号文化

这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:2)

如果您的号码不能包含千个组分隔符,您可以使用:

var usCulture = new CultureInfo("en-US");
var frCulture = new CultureInfo("fr-FR");
NumberStyles ns = NumberStyles.Any & ~NumberStyles.AllowThousands;  // without thousands

string[] strings = {"1.5", "1,5"};
foreach (string s in strings)
{
    decimal d;
    bool isUsCulture = decimal.TryParse(s, ns, usCulture, out d);
    bool isFrCulture = decimal.TryParse(s, ns, frCulture, out d);
}

请注意,您现在可以检测文化,但前提是它包含小数点分隔符。像“2”这样的数字可能是我们或fr。

答案 1 :(得分:0)

你可以试试这个: 首先在函数程序中插入此代码。
用于分隔符setLayout() 例如:"."

decimal.Parse("0.2")