0

我有一个方程;

(((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。类似的方程。任何帮助都会很热。谢谢。

4

3 回答 3

1

^Java 中的意思是异或运算,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);
于 2013-09-30T02:47:01.437 回答
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;
}

当然,您需要处理一些极端情况,例如指数 <= 0 和整数溢出。因为这是你的作业,所以我会把这些细节留给你自己弄清楚。

于 2013-09-30T02:50:01.900 回答
0

只计算

((nmed - nsub) / (nmed + nsub)) *10

并将结果乘以自身。

于 2013-09-30T03:16:07.777 回答