1

当您有以下情况时,使转换工作的最佳方法是什么:

string a = "10.0123";
string b = "10,0123";

并且文化信息是瑞典语或英语,它需要与两者一起使用。

我试过了:

double aSwe = Convert.ToDouble(a, CultureInfo.GetCultureInfo("sv-SE"));
double bSwe = Convert.ToDouble(b, CultureInfo.GetCultureInfo("sv-SE"));

double aInv = Convert.ToDouble(a, CultureInfo.InvariantCulture);
double bInv = Convert.ToDouble(b, CultureInfo.InvariantCulture);

自从 '。' 在 Swe 和 ',' 中不是有效的分隔符,在 Eng 中无效我不知道如何使用相同的代码使其与两者一起使用。我想出的唯一解决方案是在转换之前替换逗号或点,但感觉应该有更好的解决方案?

4

1 回答 1

3

在没有任何额外上下文的情况下,您不应该尝试使其与两者一起使用。

这就像试图将“06/05/2010”解析为没有任何文化信息的日期:它可能意味着 5 月 6 日或 6 月 5 日。

同样,“1,234”是一个多于一千或多于一的值:您需要了解文化信息才能明确地解释它。

因此,与其试图解决在没有足够信息的情况下解释某些内容的问题,我建议您专注于获取所需的所有信息的问题(或将获取文本数据的方式更改为始终采用一种特定格式)。

于 2012-07-04T09:13:47.037 回答