From fc87d359265b58a514513ce3e14ccba9ae4dc5ea Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Mon, 2 Jun 2025 14:20:50 +0200 Subject: [PATCH] Update QJsonValue(qint64) docs to reflect full precision Amends commit 35adb74ddd915831789f0175423660f8e898942e (from 5.15) to reflect the improved precision of 64-bit int when stored as a JSON value. Task-number: QTBUG-28560 Pick-to: 6.8 6.5 Change-Id: I07915bc190dd7696e58356143e8857f91e888c67 Reviewed-by: Thiago Macieira (cherry picked from commit 9be6e51a501dfbee1c058616b9e81b1731640e3e) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit ad55e57c6e4c52e58dea87373de00e71588a49c0) --- src/corelib/serialization/qjsonvalue.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/corelib/serialization/qjsonvalue.cpp b/src/corelib/serialization/qjsonvalue.cpp index 63f2f438965..a7150df4199 100644 --- a/src/corelib/serialization/qjsonvalue.cpp +++ b/src/corelib/serialization/qjsonvalue.cpp @@ -175,9 +175,14 @@ QJsonValue::QJsonValue(int v) /*! \overload Creates a value of type Double, with value \a v. - 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. - */ + + This is stored internally as a 64-bit integer, so retains its full + precision, as long as it is retrieved with \l toInteger(). However, + retrieving its value with \l toDouble() will lose precision unless the value + lies between ±2^53. + + \sa toInteger(), toDouble() +*/ QJsonValue::QJsonValue(qint64 v) : value(v) {