c#double.parse()总是使用a。期间不是逗号

时间:2013-07-16 19:25:09

标签: c# decimal

如何指定我的decimal.Parse必须始终期望接收带有'。'的字符串。像“4.75”无关系计算机的系统设置是什么?

我正在读取excel的文件,它给了我一个'。'的价值。我看到如果我在我的笔记本电脑上运行我的程序它会抛出错误,因为它需要','

我可以使用:

string tmp1 = tmp[2].Replace('.', ',');

但很明显,如果我的电脑想要一个''。然后就会出错。

我最好的选择是什么?

3 个答案:

答案 0 :(得分:11)

请参阅:Double.Parse

使用此重载在您的案例CultureInfo.InvariantCulture中指定IFormatProvider

var value = double.Parse(tmp[2], CultureInfo.InvariantCulture);

但是,如果您打算让您的流程持久,我会推荐Double.TryParse

double value;

if(!double.TryParse(tmp[2],
   NumberStyles.None,
   CultureInfo.InvariantCulture,
   out value))
{
    // error handling
}

答案 1 :(得分:7)

使用Double.Parse Method (String, IFormatProvider)CultureInfo.InvariantCulture进行解析。

double d = double.Parse("2.2", CultureInfo.InvariantCulture);

答案 2 :(得分:4)

您可以使用Decimal.Parse的重载来指定文化:

decimal value = decimal.Parse(tmp[2], CultureInfo.InvariantCulture);