this seems like a bad fix, since min_float could be anything by this time, and adding max() would lead to overflow.
This whole comparison with -1*max() (in the original code) is just to determine if the default is still set, but the question is, do we even need that.
The comparison of 
tmp < min_float || tmp > max_float
should suffice IMHO.

Same for other cases below.