aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2015-03-06 12:54:39 +0000
committerThe Qt Project <gerrit-noreply@qt-project.org>2015-03-06 12:54:39 +0000
commit1d2d771f552ff43a508ff301ff0906d8d61b729f (patch)
tree6a9ece9596f93f0188489b8b86f8dfaef5e6cc5a /src/qml
parentfc7d3fcb17db5e87fcca7b46a668b1c5a0f2ea06 (diff)
parentd8c559c4e2fc0b8051be78bd64b8a8fe80b3b78f (diff)
Merge "Merge remote-tracking branch 'origin/5.4' into 5.5" into refs/staging/5.5
Diffstat (limited to 'src/qml')
-rw-r--r--src/qml/jsruntime/qv4numberobject.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/qml/jsruntime/qv4numberobject.cpp b/src/qml/jsruntime/qv4numberobject.cpp
index d8c9d89369..89ff110b20 100644
--- a/src/qml/jsruntime/qv4numberobject.cpp
+++ b/src/qml/jsruntime/qv4numberobject.cpp
@@ -204,9 +204,15 @@ ReturnedValue NumberPrototype::method_toFixed(CallContext *ctx)
str = QString::fromLatin1("NaN");
else if (qIsInf(v))
str = QString::fromLatin1(v < 0 ? "-Infinity" : "Infinity");
- else if (v < 1.e21)
- str = QString::number(v, 'f', int (fdigits));
- else
+ else if (v < 1.e21) {
+ char buf[100];
+ double_conversion::StringBuilder builder(buf, sizeof(buf));
+ double_conversion::DoubleToStringConverter::EcmaScriptConverter().ToFixed(v, fdigits, &builder);
+ str = QString::fromLatin1(builder.Finalize());
+ // At some point, the 3rd party double-conversion code should be moved to qtcore.
+ // When that's done, we can use:
+// str = QString::number(v, 'f', int (fdigits));
+ } else
return RuntimeHelpers::stringFromNumber(ctx->engine(), v)->asReturnedValue();
return scope.engine->newString(str)->asReturnedValue();
}