字符串值中包含E等科学计数法,比如:[1.21205e+07,3.58505e+06,-5e-05]转化为对应的数字。
方法一:
private Decimal ChangeDataToD(string strData)
{
Decimal dData = 0.0M;
if (strData.Contains("E")||strData.Contains("e"))
{
dData = Convert.ToDecimal(Decimal.Parse(strData.ToString(), System.Globalization.NumberStyles.Float));
}
return dData;
}
使用该方法大多数可以正常转换,但是在实际项目中会出现错误提示:值对于小数而言太大或太小
。可能是数据溢出了。
方法二:
在方法一的基础上做了改进。
private double ChangeDataToD(string strData)
{
if (strData.Contains("E")||strData.Contains("e"))
{
Double.TryParse(strData.ToString(), out double newData);
return newData;
}
else
{
return 0.0M;
}
}