The maximum rounding error in an IEEE 754 32-bit binary floating point calculation is about 1e31. I calculated it in Java using this program:
public class Test {
public static void main(String[] args) {
float biggest = Float.MAX_VALUE;
float nextBiggest = Math.nextDown(biggest);
float gap = biggest - nextBiggest;
System.out.println(gap / 2);
}
}
It is half the distance between the two biggest finite numbers. You can do a similar calculation in Objective-C for the format you are using. It will be far too big to use for reasonable magnitude calculations.
You really do need to work with relative error, either explicitly or by picking a fixed bound that is appropriate for the magnitudes of your numbers.