我正在做一个程序,该程序根据测量的放射性计算前一个时间点的放射性活动。
但是,如果半衰期与经过的时间相比非常大,我会得到 a0.00
作为答案,然后A= Ao
至少让我知道直到(times[i]-times[0])
变大。
例如,如果(times[i]-times[0]) = 5
我Thalflife = 6540
想得到0.00076452599
但是我得到0.0
的是使用错误类型的两倍,或者/
是给我问题的命令?
private double[]theoreticalVals(double activity) {
/* below is an implementation of the activity decay
* calculation formula A= Ao/2^(t/Thalflife)
* An array of values will be returned.
* The times array defines the length of the array and gives the point in time values
*/
double Ao= activity;
double [] vals = new double[times.length];
double a;
vals[0]=Ao; //initial activity
for(int i = 1; i<times.length;i++){
a =(times[i]-times[0])/Hf; //
double lowerhalfterm = Math.pow(.5,a); // 2-(^(t/Thalflife))
vals[i]= Ao/lowerhalfterm;
} // A=Ao/2^(t/Thalflife)
return vals;
}