在C#中,将字符串转换为双精度浮点数(double)类型有多种方法,double.Parse、Convert.ToDouble和double.TryParse等。
常用转换方法包括: double.Parse方法直接将字符串转换为double,但若字符串格式无效会抛出FormatException,适用于已知字符串格式可靠的场景;
Convert.ToDouble方法功能类似,内部调用Parse,同样可能引发异常,且默认使用当前区域性设置,十进制分隔符不匹配时易出错;
double.TryParse方法采用out参数返回转换结果,失败时返回false而不抛异常,适合处理不确定格式的输入以避免性能损耗。
建议使用TryParse方法进行防御性编程,例如:
string input = "123.45";
if (double.TryParse(input, out double result)) {
// 转换成功
} else {
// 处理无效格式
}
对于区域性敏感场景(如不同地区的千位分隔符或十进制符号),可使用Convert.ToDouble(string, IFormatProvider)或double.Parse(string, IFormatProvider)并指定CultureInfo,例如CultureInfo.InvariantCulture确保使用标准格式。
格式化输出方面, 转换后的double值可通过ToString("F2")保留两位小数,或使用Math.Round方法四舍五入,例如Math.Round(value, 2)。