The simplifiers of the incomplete gamma, error and incomplete beta functions test for special arguments before their numerical clauses and put in an exact value there, so a float argument doesn't always give a number:
(%i1) display2d : false$
(%i2) gamma_incomplete_lower(1/3, 8.0);
(%o2) gamma(1/3)-7.799182611869946e-5
(%i3) gamma_incomplete_lower(3/2, 8.0);
(%o3) sqrt(%pi)/2-0.001004967410648176
(%i4) gamma_incomplete_lower(1/3, 8.0*%i);
(%o4) gamma(1/3)+0.10901538887260959*%i+0.221572520567445
(%i5) gamma_incomplete(1/3, 0.0);
(%o5) gamma(1/3)
(%i6) [gamma_incomplete_regularized(1/3, 0.0), gamma_incomplete_generalized(1/3, 8.0, 8.0)];
(%o6) [1,0]
(%i7) [erfc(0.0), beta_incomplete_regularized(1/3, 1/2, 0.0)];
(%o7) [1,0]
(%i8) [gamma_incomplete(1/3, 8.0), erf(0.0), gamma_incomplete_regularized(1/3, 8.0)];
(%o8) [7.799182611869946e-5,0.0,2.911295840059569e-5]
gamma_incomplete_lower is the worst case, since it delegates to gamma_incomplete_generalized(a, 0, z): It evaluates only for a float order, or a positive integer one under gamma_expand. It also has no conjugate-function property, so rectform(gamma_incomplete_lower(1/3, %i*x^3)) returns realpart and imagpart noun forms where gamma_incomplete gets the mirror symmetry of the function.