问题描述: 在 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;
- }
来源: http://www.bubuko.com/infodetail-3064042.html