我得到的错误是"二进制运算符 ^ 的第一种类型:浮点数第二种类型:浮点数的错误操作数"此错误发生在开关 x y 和 r 的 5 个浮点数且 n 是 Int 的情况下
switch (n)
{
case 1: r=x+y;
case 2: r=x-y;
case 3: r=x*y;
case 4: r=x/y;
case 5: r=x^y;
default: System.out.println("Elija un numero valido");}
^
只为类整数类型(byte
、short
、int
、long
、char
(和boolean
定义。
换句话说:正是错误消息所说的。float
不是^
运算符的合法操作数。
这是有道理的:大多数人无法分辨出二进制表示的内容,例如23.42
是。你会吗?(这实际上是一个棘手的问题:你甚至不能用二进制表示23.42
。您可以得到的最接近的是二进制表示为01000000 00110111 01101011 10000101 00011110 10111000 01010001 11101100
的23.4200000000000017053025658242
。
如果^
运算符确实使用float
s,那将不是很明显。 例如
2.0 ^ 3.0
将
0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111253692925360069154511635867
(我想,如果我没有在某处犯错的话。