负数学.log返回可能会损害Kt / V计算

时间:2016-05-17 18:35:14

标签: java

我是java编程的新手,并使用它的数学类,所以我的问题可能是新手,而解决方案显而易见。然而,我宁可冒这个风险在这里冒险,如果有人告诉我我在哪里弄错了,那么他就会陷入地狱之中。 所以这里的简单代码应该按公式spKT/V = -ln(R - 0.008 * t) + (4 - 3.5 * R) * 0.55 * (UF/V)计算单池KT / V(用肾病计算) 我有一本教科书,其中KT / V有上述值:
R = 0.35,t = 3,UF / V = 0.06以某种方式结束,结果为1.21 我在编译后运行这个类得到-1.029 我有两个问题:
1.为什么我得到负数以及如何将其改为正数? (猜,它与数学日志有关)
2.这是我搞乱代码或教科书错了吗?如果那是我错了要改变什么来获得1.21?

非常感谢任何输入。感谢大家提前。

import java.*;
public class nephro {

public static void main (String[] args) {

    System.out.println(spKTV());

}
public static double logrfm() {
    double logX = x(0.35, 3);
    double left = Math.log(logX);
    return left;
}
public static double x(double R, double t) {
    double x_res = (R - 0.008 * t);
    return x_res;
}
public static double rufv (double R, double UFV) {
    double rufv = (4 - 3.5 * R) * (0.55 * UFV);
    return rufv;
}
public static double spKTV(){
    double result = logrfm() + rufv(0.35, 0.06);
    return result;
}
}

1 个答案:

答案 0 :(得分:2)

1)由于计算错误,您得到负值。

2)这本书是对的(你可以用袖珍计算器来检查)。代码中的问题在于:

double left = Math.log(logX);

应该是:

double left = - Math.log(logX);

顺便说一下。如果代码没有分成很多方法,那么代码会更容易理解。