C#DataGrid列值出现E形式的小数,将DataGrid表格上的数据保存至数据库表时会因格式转换不正确导致报错

问题描述:在DataGridView中调整金额一列,当输入小数0.000001后会显示1E-6,此时进行保存操作时报错,提示无法将string类型转换成Decimal

原因分析:由于列调整金额为1E-6,当通过Convert.ToDecimal方法进行转换时就会报错

解决方法:将调整金额为科学计数形式的小数转换成一般小数。

转换方法:

public decimal TransEToD(string data)
{
  decimal dData = 0.0m;

  if(data.Contains("E"))
  {
    double baseNum = double.Parse(data.Substring(0, data.IndexOf("E")));
    double power = double.Parse(data.Substring(data.IndexOf("E") + 1));
    dData = Convert.toDecimal(baseNum * Math.Pow(10,power) );
  }
  else

  {
    dData = Convert.ToDecimal(data);
  }
  return dData;
}

posted on 2019-05-18 23:57  蓝盔扶桑花  阅读(179)  评论(0编辑  收藏  举报