问题描述:在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;
}