使用双精度解析字符串并获取错误输入字符串的格式不正确
c#
我有一个来自 csv 文件的字符串,看起来像这样 ""711,200.00"" 我试图用这个代码将该数字转换为双精度
collaterel.LoanQty = double.Parse(values[25], CultureInfo.InvariantCulture);
我已经去掉了逗号并尝试转换为双精度,但我仍然得到输入字符串的格式不正确
这是我用来去掉逗号的
if (values[25].Contains(","))
{
values[25] = values[25].Replace(",", "");
}
我尝试了很多文化,但仍然失败。
带有cultureinfo 的屏幕截图double.parse 不起作用
回答
由于double.Parse("711,200.00", CultureInfo.InvariantCulture) 有效,但您的输入是""711,200.00"",您只需要修剪引号:
collaterel.LoanQty = double.Parse(values[25].Trim('"'), CultureInfo.InvariantCulture);
通常,您应该使用double.TryParse以避免捕获格式无效的异常。