diff --git a/src/corelib/global/qnumeric_p.h b/src/corelib/global/qnumeric_p.h index bb3f1a976b2..4fa817077eb 100644 --- a/src/corelib/global/qnumeric_p.h +++ b/src/corelib/global/qnumeric_p.h @@ -198,7 +198,7 @@ static inline bool convertDoubleTo(double v, T *value, bool allow_precision_upgr // T has more bits than double's mantissa, so don't allow "upgrading" // to T (makes it look like the number had more precision than really // was transmitted) - if (!allow_precision_upgrade && (v > double(max_mantissa) || v < double(-max_mantissa - 1))) + if (!allow_precision_upgrade && !(v <= double(max_mantissa) && v >= double(-max_mantissa - 1))) return false; }