Maxima was unable to evaluate the predicate



Hello,

I'm new with Maxima. I tried this input:

TD(t,h,p):=-((1188500*t+282506450)*LG(h,p)+20301957*t)/((Round(5000/p)*t+Round(1188500/p)*LG(h,p))-Round(20301957/p));
Td(t,h):=-((1188500*t+282506450)*log(h)+20301957*t)/((5000*t+1188500)*log(h)-20301957);
LG(x,p):=Round(log(x)*p)/p;
Round(v):=(if (v-floor(v))>=0.5 then ceiling(v) else floor(v));
E(t,h,p):=Td(t,h)-TD(t,h,p);
plot3d(E(t,h,10^6), [t,-30,50], [h,0.005,1], [plot_format,gnuplot]);

The plot3d ends with:

Maxima was unable to evaluate the predicate:
1000000*log(h)-floor(1000000*log(h))>=0.5
#0: Round(v=1000000*log(h))
#1: LG(x=h,p=1000000)
#2: TD(t=t,h=h,p=1000000)
-- an error.  To debug this try debugmode(true);

I understand, that Round gets called with unbound variable h.
But how to get it working?

Thanks,
Albrecht