c# - 用双精度解析字符串并获取错误输入字符串格式不正确
问题描述
我有一个来自 csv 文件的字符串,看起来像这样 ""711,200.00"" 我正在尝试使用此代码将该数字转换为双精度
collaterel.LoanQty = double.Parse(values[25], CultureInfo.InvariantCulture);
我已取出逗号并尝试转换为双精度,但我仍然得到输入字符串的格式不正确
这是我用来去掉逗号的
if (values[25].Contains(","))
{
values[25] = values[25].Replace(",", "");
}
我尝试了许多文化,但仍然失败。
屏幕截图 double.parse 与cultureinfo 不起作用
解决方案
由于double.Parse("711,200.00", CultureInfo.InvariantCulture)
works,但您的输入是""711,200.00""
,您只需要修剪引号:
collaterel.LoanQty = double.Parse(values[25].Trim('"'), CultureInfo.InvariantCulture);
通常,您应该使用double.TryParse
来避免捕获具有无效格式的异常。
推荐阅读
- c# - 将 NLog 文件保存到基本文件夹时出现问题
- twitter-bootstrap - Jekyll LightGallery 如何在自己的 DIV 中加载图像,对 Bootstrap 很有用
- python - Pytest 在测试完成之前对 Flask 中的 postgresql 数据库进行拆解
- python - 如何使用 UNISWAP API 获取代币价格
- openrefine - 在 OpenRefine 的大文本中删除某些行中字符之前的所有内容
- three.js - 3D 模型中的三框工具提示
- common-lisp - 如何将动态生成的 Lisp 系统保存在外部文件中?
- java - 我是否需要端口转发才能在同一网络上的两台机器之间进行通信?
- amazon-rds - 设置 Amazon RDS 数据库的推荐安全设置是什么
- azure-storage - Azure Blob 存储同步:获取接触文件的列表