【问题标题】:Convert String with commas and floating point to Double将带逗号和浮点的字符串转换为 Double
【发布时间】:2017-05-16 16:52:48
【问题描述】:

我正在尝试将一些字符串转换为双精度值 这是代码的简短版本(重要的一行):

double.Parse(xlWorksheet.Cells[i, "R"].Text);

给出异常的字符串值示例:

116,900.2               
202,893.28             
145.98                    
604.73     
8,668.21          
4,335.98

顺便说一句

xlWorksheet.Cells[i, "R"].Text       

等于我写的给出异常的示例之一
有人知道如何解决这个问题吗?

【问题讨论】:

  • 有什么异常? xlWorksheet.Cells[i, "R"].Text 的值是多少?所有这些值都在一个字符串中,还是每个字符串都包含一个值?您应该展示一个特定字符串输入的示例
  • @Habib 为什么要删除逗号? double.Parse 可以处理逗号...
  • 如果 xlWorksheet.Cells[i, "R"].Text 是格式正确的字符串(例如:"16,900.2"、"202,893.28"、"145.98"、"604.73"、"8,668.21 ", "4,335.98"),那么它应该可以工作。你试过了吗?
  • 是的,我试了一下,它给出了异常 Input String not in format

标签: c# type-conversion double


【解决方案1】:

你可以试试这个。

Convert.ToDouble("123131312 ".Trim());

【讨论】:

  • 它不起作用,字符串用点和逗号给出
  • 为所有字符添加 .replace(".","")
  • 但是它会改变输入的值吗?
  • 尝试查找输入单元格中是否有返回键字符或特殊字符;例如; char(10)、char(13) 或 char(10) + char(13) 等
  • 没关系,我用正则表达式找到解决方案,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-01
  • 2021-04-19
  • 2022-06-15
  • 2020-04-21
相关资源
最近更新 更多