C#报错:输入字符串格式不正确_pyy的博客-CSDN博客_输入字符串的格式不正确

来源: (1条消息) C#报错:输入字符串格式不正确_pyy的博客-CSDN博客_输入字符串的格式不正确

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测试

 

 view plain copy

  1. static void Main(string[] args)
  2.       {
  3.          try
  4.          {
  5.             string str = “”;
  6.             // 如果当前str为空串,则出异常:输入字符串格式不正确
  7.             Console.WriteLine(Convert.ToDouble(str));
  8.          }
  9.          catch (Exception ex)
  10.          {
  11.             Console.WriteLine(ex.Message);
  12.          }
  13.          Console.ReadLine();
  14.       }

 

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

 

 view plain copy

  1. static void Main(string[] args)
  2.       {
  3.          try
  4.          {
  5.             string str = “123.123”;
  6.             // 如果当前str为空串,则出异常:输入字符串格式不正确
  7.             Console.WriteLine(Convert.ToDouble(str));
  8.          }
  9.          catch (Exception ex)
  10.          {
  11.             Console.WriteLine(ex.Message);
  12.          }
  13.          Console.ReadLine();
  14.       }

 

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

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

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

 

 view plain copy

  1. static void Main(string[] args)
  2.     {
  3.        try
  4.        {
  5.           string str = “”;
  6.           double rst = 0.0;
  7.           Console.WriteLine(“转换结果为:” + double.TryParse(str, out rst));
  8.           Console.WriteLine(rst);
  9.        }
  10.        catch (Exception ex)
  11.        {
  12.           Console.WriteLine(ex.Message);
  13.        }
  14.        Console.ReadLine();
  15.     }

 

得到的结果为:

转换结果为:false

0

第二种情况:

 

 view plain copy

  1. static void Main(string[] args)
  2.       {
  3.          try
  4.          {
  5.             string str = “123.123”;
  6.             double rst = 0.0;
  7.             Console.WriteLine(“转换结果为:” + double.TryParse(str, out rst));
  8.             Console.WriteLine(rst);
  9.          }
  10.          catch (Exception ex)
  11.          {
  12.             Console.WriteLine(ex.Message);
  13.          }
  14.          Console.ReadLine();
  15.       }

 

 

得到的结果为:

转换结果为:true

123.123

 

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

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

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏