当字符串将字符串值转换为double值时,我遇到了问题。 例如:
string val="2.0";
double dval=Convert.ToDouble(val);
在法国系统上执行此代码时会抛出错误,因为在法语中他们使用(逗号)代替。(点)。
任何解决方案???
答案 0 :(得分:11)
Convert.ToDouble(val, System.Globalization.CultureInfo.InvariantCulture);
或
Double.Parse(val, System.Globalization.CultureInfo.InvariantCulture);
答案 1 :(得分:2)
使用正确的Culture来解析数据。
如果“2.0”来自某些标准源(即XML),请使用CultureInfo.InvariantCulture
(如建议的abatishcev)。
如果“2.0”来自已知文化的用户输入 - 使用该文化(en-US样本):
double dval = Double.Parse("2.0", new CultureInfo("en-US"));
如果是来自本地用户的输入,则应该是正确的用户文化设置 - “fr-FR”应为“2,0”。
如果您不知道使用什么文化来输入“2.0”值,最好简单地停下来思考应该使用什么文化。