c#double.parse()始终使用.句点而不是逗号

本文关键字:句点 parse c#double | 更新日期: 2023-09-27 18:22:46

如何指定我的小数。分析必须始终期望接收到带有"."的字符串比如"4.75",不管电脑的系统设置是什么?

我正在阅读excel中的一个文件,它给了我一个"的值我看到,如果我在笔记本电脑上运行我的程序,它会像预期的那样抛出并出错

我可以使用:

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

但很明显,如果我的电脑想要一个"。那么它将给出一个错误。

我的最佳选择是什么?

c#double.parse()始终使用.句点而不是逗号

参见: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
}

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

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

您可以使用Decimal.Parse的重载,这将允许您指定区域性:

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