Dart中使用赋值运算符报错:double类型无法赋值给int类型
问题原因
Dart 里的/除法运算符,不管操作数是整数还是小数,返回的结果都是double类型。你的代码中a初始赋值为10(int类型),执行a /= b时,会把除法得到的double值赋值给int类型的a,这就触发了类型不匹配的错误。
解决方法
有两种常用的修复方式,可根据需求选择:
方式一:使用整数除法运算符~/
如果只需要整数结果,把除法语句里的/换成~/,它会返回整数类型的结果,和a的int类型匹配:
void main() { var a=10; var b=2; var toplam=a+=b; var fark=a-=b; var carpim=a*=b; var bolme=a~/=b; // 替换为整数除法运算符 print("$toplam"); print("$fark"); print("$carpim"); print("$bolme"); }
方式二:将变量a声明为double类型
如果需要保留小数结果,把a的初始值改为double类型(比如10.0),或者显式声明为double,这样后续所有运算结果都是double,不会出现类型不兼容:
void main() { double a=10; // 显式声明为double类型 var b=2; var toplam=a+=b; var fark=a-=b; var carpim=a*=b; var bolme=a/=b; print("$toplam"); print("$fark"); print("$carpim"); print("$bolme"); }
内容的提问来源于stack exchange,提问作者Zeynep Baysoy
相关产品推荐
相关产品推荐

