首页 > 解决方案 > 用双精度解析字符串并获取错误输入字符串格式不正确

问题描述

我有一个来自 csv 文件的字符串,看起来像这样 ""711,200.00"" 我正在尝试使用此代码将该数字转换为双精度

collaterel.LoanQty = double.Parse(values[25], CultureInfo.InvariantCulture);

我已取出逗号并尝试转换为双精度,但我仍然得到输入字符串的格式不正确

这是我用来去掉逗号的

  if (values[25].Contains(","))
  {
     values[25] = values[25].Replace(",", "");
  }

我尝试了许多文化,但仍然失败。

屏幕截图 double.parse 与cultureinfo 不起作用

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

标签: c#csv

解决方案


由于double.Parse("711,200.00", CultureInfo.InvariantCulture) works,但您的输入是""711,200.00"",您只需要修剪引号:

collaterel.LoanQty = double.Parse(values[25].Trim('"'), CultureInfo.InvariantCulture);

通常,您应该使用double.TryParse来避免捕获具有无效格式的异常。


推荐阅读