C#报错:输入字符串格式不正确

xiaoxiao2025-04-05  13

List<Model> data1 = list.Select(x => new Model { num = Convert.ToDecimal(x.PM25) }).OrderBy(x => x.num).ToList();

修改如下:

data = list.OrderBy(x => x.CO).Select(x => x.CO).ToList();                 List<decimal> list3 = new List<decimal>();                 decimal s3 = 0;                 list3 = data.ConvertAll<decimal>(x => decimal.TryParse(x, out s3) == true ? s3 : s3);

附TryParse的使用方法如下:

https://blog.csdn.net/firetaker/article/details/5638914

Convert.ToDouble double.TryParse 使用方式比较

2010年06月01日 11:20:00 firetaker 阅读数:5258 标签: exceptionstring测试

 

[c-sharp] view plain copy

static void Main(string[] args)        {           try           {              string str = "";                          // 如果当前str为空串,则出异常:输入字符串格式不正确              Console.WriteLine(Convert.ToDouble(str));                       }           catch (Exception ex)           {              Console.WriteLine(ex.Message);           }           Console.ReadLine();        }  

 

以上代码中出现的结果为:输入字符串格式不正确。因为传入的字符串为空,转换成double类型不成功

 

[c-sharp] view plain copy

static void Main(string[] args)        {           try           {              string str = "123.123";                          // 如果当前str为空串,则出异常:输入字符串格式不正确              Console.WriteLine(Convert.ToDouble(str));                       }           catch (Exception ex)           {              Console.WriteLine(ex.Message);           }           Console.ReadLine();        }  

 

随便对str赋值一个合适的值,得到结果为:123.123

下面转换用另外一种方式处理:

第一种情况设置当前的str为空

 

[c-sharp] view plain copy

static void Main(string[] args)      {         try         {            string str = "";            double rst = 0.0;            Console.WriteLine("转换结果为:" + double.TryParse(str, out rst));            Console.WriteLine(rst);                     }         catch (Exception ex)         {            Console.WriteLine(ex.Message);         }         Console.ReadLine();      }  

 

得到的结果为:

转换结果为:false

0

第二种情况:

 

[c-sharp] view plain copy

static void Main(string[] args)        {           try           {              string str = "123.123";              double rst = 0.0;              Console.WriteLine("转换结果为:" + double.TryParse(str, out rst));              Console.WriteLine(rst);                       }           catch (Exception ex)           {              Console.WriteLine(ex.Message);           }           Console.ReadLine();        }  

 

 

得到的结果为:

转换结果为:true

123.123

 

由以上的测试结果可以看出。使用double.TryParse()做类型转换更安全

可以对返回值进行判断,也可以设置默认的返回值0

转载请注明原文地址: https://www.6miu.com/read-5027541.html

最新回复(0)