我有一个等式;
(((nmed - nsub) / (nmed + nsub))^2) *100
我已经查看了其他问题,但似乎无法理解如何将pow()实现到这个等式中。
private String updateTotal() {
float nsub;
float nmed;
if(n_sub.getText().toString() != "" && n_sub.getText().length() > 0) {
nsub = Float.parseFloat(n_sub.getText().toString());
} else {
nsub = 0;
}
if(n_med.getText().toString() != "" && n_med.getText().length() > 0) {
nmed = Float.parseFloat(n_med.getText().toString());
} else {
nmed = 0;
}
return Float.toString( (((nmed - nsub) / (nmed + nsub))^2) *100 );
}
在另一个方程中,我将为另一个输入做,我也将实现sqrt。类似的方程。 任何帮助都会很热。 感谢。
答案 0 :(得分:1)
Java中的^
意味着exclusive OR, XOR
操作,而不是提升权力。您需要使用Math.pow(x, 2)
或简单地将表达式自身相乘:
return Float.toString(100 * Math.pow( ((nmed - nsub) / (nmed + nsub)), 2));
或
float tmp = (nmed - nsub) / (nmed + nsub);
return Float.toString(100 * tmp*tmp);
答案 1 :(得分:0)
您可以使用Math#pow
,但我猜这是功课,您需要自己实施。
指数的简单方法是:
public int pow (int value, int exp) {
int retVal = value;
for (int i = 1; i < exp; i++) {
retVal = retVal * value;
}
return retVal;
}
当然,您需要处理一些边缘情况,如exponents&lt; = 0和整数溢出。由于这是你的作业,我会留下这些细节让你弄明白。
答案 2 :(得分:0)
只需计算
((nmed - nsub) / (nmed + nsub)) *10
并将结果乘以其自身。