diff options
Diffstat (limited to 'src/corelib/json/qjsonvalue.cpp')
-rw-r--r-- | src/corelib/json/qjsonvalue.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/corelib/json/qjsonvalue.cpp b/src/corelib/json/qjsonvalue.cpp index 9dd9a9cab9..d0634602f3 100644 --- a/src/corelib/json/qjsonvalue.cpp +++ b/src/corelib/json/qjsonvalue.cpp @@ -158,6 +158,18 @@ QJsonValue::QJsonValue(int n) } /*! + \overload + Creates a value of type Double, with value \a n. + NOTE: the integer limits for IEEE 754 double precision data is 2^53 (-9007199254740992 to +9007199254740992). + If you pass in values outside this range expect a loss of precision to occur. + */ +QJsonValue::QJsonValue(qint64 n) + : d(0), t(Double) +{ + this->dbl = n; +} + +/*! Creates a value of type String, with value \a s. */ QJsonValue::QJsonValue(const QString &s) @@ -439,6 +451,19 @@ bool QJsonValue::toBool(bool defaultValue) const } /*! + Converts the value to an int and returns it. + + If type() is not Double or the value is not a whole number, + the \a defaultValue will be returned. + */ +int QJsonValue::toInt(int defaultValue) const +{ + if (t == Double && int(dbl) == dbl) + return dbl; + return defaultValue; +} + +/*! Converts the value to a double and returns it. If type() is not Double, the \a defaultValue will be returned. |