Certo che la differenza tra float e double è notevole:
codice:
import static java.lang.Math.*;
class Esempio {
public static void main(String args[]) {
double x,y;
double b = 999999999999D;
double c;
x = ulp(b);
y = nextAfter(b,b+1);
c = b+ulp(b);
System.out.println(x);
System.out.println(y);
System.out.println(c);
float xf,yf;
float bf = 999999999999F;
float cf;
xf = ulp(bf);
yf = nextAfter(bf,bf+1);
cf = bf+ulp(bf);
System.out.println(xf);
System.out.println(yf);
System.out.println(cf);
}
}
1.220703125E-4
9.999999999990001E11
9.999999999990001E11
65536.0
1.0E12
1.00000006E12