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

Zap*_*ica 3 c# decimal

如何指定我的decimal.Parse必须始终期望接收带有'.'的字符串.像"4.75"无关电脑的系统设置是什么?

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

我可以用:

string tmp1 = tmp[2].Replace('.', ',');
Run Code Online (Sandbox Code Playgroud)

但很明显,如果我的电脑想要一个''.那么它会给出一个错误.

什么是我最好的选择?

Dus*_*gen 11

看到: Double.Parse

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

var value = double.Parse(tmp[2], CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

但是,Double.TryParse如果您打算让您的工艺持久耐用,我会建议您这样做.

double value;

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


Hab*_*bib 7

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

double d = double.Parse("2.2", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)