当我尝试在下面的代码中设置
z
变量时,我得到了这个编译时错误:
运算符“*”不能应用于“double”和“decimal”类型的操作数
decimal x = 1, y = 2, z;
// There are two ways I set the z variable:
z = (x*y)*(.8 * 1.732050808m);
z = (1000 * x)/(y * 1.732050808m)* .8;
为什么会这样,我该如何解决?
一定要使用
.8m
而不是.8
。
你没说是哪一行,但我打赌这两个:
z = (x*y)*(.8 * 1.732050808m);
和:
z = (1000 * x)/(y * 1.732050808m)* .8;
请注意,您的 .8 没有“m”限定符。我看到的每个其他地方都提供了。
在此行中:
z = (xy)(.8 * 1.732050808m);
您将 .8 指定为文字,但没有“m”后缀,文字指定为双精度。
z = (xy)(.8m * 1.732050808m);
会修复它。