当前位置:首页 > C#教程 > C#高级

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;
}


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐