Para master semua, sy minta tolong bagaimana cara mengatasi error "INVALID FLOATING POINT OPERATION".
ini penggalan source code nya.
Code:
function dmc(var temp,RH,Rain,dmcprev,lat,month : real) : real ;
var
re, Mo, Mr, K, B, P, Pr, Dl : real;
begin
if rain > 1.5 then
begin
re := (0.92 * rain) - 1.27;
//hitung mo
mo := 20 + exp(5.6348 - dmcprev / 43.43);
// hitung b
if dmcprev <= 33 then
b := 100 / (0.5 + 0.3 * dmcprev)
else
if dmcprev > 65 then
b := 14 - 1.3 * ln(dmcprev)
else
b := (6.2 * ln(dmcprev)) - 17.2;
end;
// hitung mr
mr := mo + ((1000 * re) / (48.77 + b * re));
// hitung pr
pr := 244.72 - (43.3 * ln(mr-20));
if pr < 0 then
pr := 0
else
if pr > 0 then
pr := dmcprev;
// hitung k
if temp > -1.1 then
begin
case round(month) of
1 : dl := 6.5;
2 : dl := 76.5;
3 : dl := 9;
4 : dl := 12.8;
5 : dl := 13.9;
6 : dl := 13.9;
7 : dl := 12.4;
8 : dl := 10.9;
9 : dl := 9.4;
10 : dl := 8;
11 : dl := 7;
12 : dl := 6;
end;
k := 1.894 * (temp+1.1) * (100-RH) * dl * 0.000001;
end
else
k := 0;
dmc := dmcprev + 100*k;
end;
Jika di-compile dan dipanggil, akan berhenti pada perhitungan pr.
Code:
pr := 244.72 - (43.3 * ln(mr-20));
Tolong ya.... |