如何指定我的decimal.Parse必须始终期望接收带有'。'的字符串。像“4.75”无关系计算机的系统设置是什么?
我正在读取excel的文件,它给了我一个'。'的价值。我看到如果我在我的笔记本电脑上运行我的程序它会抛出错误,因为它需要','
我可以使用:
string tmp1 = tmp[2].Replace('.', ',');
但很明显,如果我的电脑想要一个''。然后就会出错。
我最好的选择是什么?
答案 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);