我是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;
}
}
答案 0 :(得分:2)
1)由于计算错误,您得到负值。
2)这本书是对的(你可以用袖珍计算器来检查)。代码中的问题在于:
double left = Math.log(logX);
应该是:
double left = - Math.log(logX);
顺便说一下。如果代码没有分成很多方法,那么代码会更容易理解。