将string类型转换为double,属于强制转换,强制转换精度肯定会受影响,这是没办法改变的事实。
你要转多少位的??Convert.ToDouble(str.ToString("0.00"));保留两位小数
换用decimal