diff --git a/src/gui/util/qvalidator.cpp b/src/gui/util/qvalidator.cpp index b968592c01..21641a76b4 100644 --- a/src/gui/util/qvalidator.cpp +++ b/src/gui/util/qvalidator.cpp @@ -693,8 +693,9 @@ QValidator::State QDoubleValidatorPrivate::validateWithLocale(QString &input, QL if (notation == QDoubleValidator::StandardNotation) { double max = qMax(qAbs(q->b), qAbs(q->t)); - if (max < double(LLONG_MAX)) { - qlonglong n = pow10(numDigits(qlonglong(max))); + qlonglong v; + if (convertDoubleTo(max, &v)) { + qlonglong n = pow10(numDigits(v)); // In order to get the highest possible number in the intermediate // range we need to get 10 to the power of the number of digits // after the decimal's and subtract that from the top number.