It might be easier to some to understand if a result is insured to be within .5 ulp can also be called properly rounded.
Take addition. If we have two fp values 'a' and 'b' then the fp result of a+b is: F(a+b) where 'a+b' is logically performed as if in infinite precision and the function F rounds the result to a fp value. By the spec the rounding function 'F' can be configured. In Java you're stuck with round to nearest.
IMHO talking in decimal makes things more complicated. The target audience is programmers so it's reasonable to expect they're comfortable in binary (or hex).