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"); }
字符串此代码在拆分时给出以下错误:“不能将类型为'double'的值赋给类型为'int'的变量。”
mwecs4sa1#
当您这样做时:
var a=10;
字符串a的类型是从赋值的右侧推断的。右侧是int文字,因此a被推断为int类型。以后当你尝试做:
a
int
var bolme=a/=b;
型a /= b部分失败,因为int.operator /总是返回double,因此该结果不能分配给只能存储int s的a。如果你希望a能够存储double s,那么你必须声明它是一个double(或者是一个num,int和double的基类):
a /= b
int.operator /
double
num
double a = 10;
型或
var a = 10.0;
num a = 10;
型或者,如果你的目的是执行整数除法,你应该使用int.operator ~/:
int.operator ~/
var a = 10; var b = 2; var bolme = a ~/= b;
型
1条答案
按热度按时间mwecs4sa1#
当您这样做时:
字符串
a
的类型是从赋值的右侧推断的。右侧是int
文字,因此a
被推断为int
类型。以后当你尝试做:
型
a /= b
部分失败,因为int.operator /
总是返回double
,因此该结果不能分配给只能存储int
s的a
。如果你希望
a
能够存储double
s,那么你必须声明它是一个double
(或者是一个num
,int
和double
的基类):型
或
型
或
型
或者,如果你的目的是执行整数除法,你应该使用
int.operator ~/
:型