C#转换double变量时报错cannot convert from 'double' to 'System.ReadOnlySpan<char>'
问题原因
- 方法参数不匹配:
int.Parse()的合法入参仅支持字符串、ReadOnlySpan<char>这类字符序列类型,你传入的total是double数值类型,类型不匹配直接触发转换错误。 - 变量声明顺序错误:你的代码中先调用
total执行赋值,后定义double total = 0,C#是顺序执行的编译型语言,变量必须先声明再使用,即便类型匹配也会触发未定义变量的报错。
解决方法
场景1:需要把double类型的total转为int存入storetotal(最常见需求)
直接用强制类型转换即可,无需调用Parse方法,代码调整为:
double total = 0; int storetotal = (int)total;
注意:该方式会直接截断小数部分,例如total为1.9时,转换后storetotal的值为1
如果需要按四舍五入规则取整,可以改用Convert.ToInt32()方法:
double total = 0; int storetotal = Convert.ToInt32(total);
场景2:确实需要调用Parse方法(例如API练习需求)
你可以先把double类型的total转为字符串,再传入Parse方法:
double total = 0; int storetotal = int.Parse(total.ToString());
内容的提问来源于stack exchange,提问作者Tester
相关产品推荐
相关产品推荐

