a
是微调器的值。
private void toolCalculateActionPerformed(java.awt.event.ActionEvent evt) {
Integer a = (int) toolSpinner.getValue();
if (toolEnch.getSelectedIndex() == 0) {
double p;
p = (10 ^ (2 - a) * 13 ^ a);
double x = Math.round(p);
System.out.println(x);
}
}
我在做10^(2-a) * 13^a
和
让我们说微调器是1,它返回6,它应该返回130。
假设微调器位于2,它返回8,应该返回169。
我用WolframAlpha测试了它,它给了我正确的结果。然而,这个程序给了我一些方法。 关于如何解决这个问题的任何想法?
答案 0 :(得分:7)
^
是异或,而不是指数。如果您想要指数,请使用Math.pow
。
p = Math.pow(10, (2-a)) * Math.pow(13, a);
答案 1 :(得分:1)
你的操作写入的优先级错误,^是异或非POW,实际上你必须自己使用括号来处理优先级。因为括号的优先级高于每个操作。 使用数学课 像这样改变p变量行:
p = Math.pow(10, (2-a)) * Math.pow(13, a); // it will be 130.0 in double format when a is 1
如果你想要计算其他任何像XOR的东西 你必须在大多数时间里自己处理自己的堕落! 像这样:
int a = 1;
double p = 0;
p = ((10 + (2-a)) * (13 + a));
System.out.println(p);; // this will be 154.0 in double format.
但是这个:
int a = 1;
double p = 0;
p = (10 + (2-a) * (13 + a));
System.out.println(p); // will print 24.0 in double format.