summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/io/qtextstream.cpp2
-rw-r--r--tests/auto/corelib/io/qtextstream/tst_qtextstream.cpp22
2 files changed, 17 insertions, 7 deletions
diff --git a/src/corelib/io/qtextstream.cpp b/src/corelib/io/qtextstream.cpp
index 288a939ab2..24c22117fa 100644
--- a/src/corelib/io/qtextstream.cpp
+++ b/src/corelib/io/qtextstream.cpp
@@ -2414,6 +2414,8 @@ QTextStream &QTextStream::operator<<(double f)
flags |= QLocaleData::CapitalEorX;
if (numberFlags() & ForcePoint)
flags |= QLocaleData::Alternate;
+ if (locale() != QLocale::c() && !(locale().numberOptions() & QLocale::OmitGroupSeparator))
+ flags |= QLocaleData::ThousandsGroup;
const QLocaleData *dd = d->locale.d->m_data;
QString num = dd->doubleToString(f, d->params.realNumberPrecision, form, -1, flags);
diff --git a/tests/auto/corelib/io/qtextstream/tst_qtextstream.cpp b/tests/auto/corelib/io/qtextstream/tst_qtextstream.cpp
index 2ae085cb0b..64d35ef154 100644
--- a/tests/auto/corelib/io/qtextstream/tst_qtextstream.cpp
+++ b/tests/auto/corelib/io/qtextstream/tst_qtextstream.cpp
@@ -1788,8 +1788,6 @@ void tst_QTextStream::writeSeekWriteNoBOM()
QCOMPARE(out16.buffer(), first);
}
-
-
// ------------------------------------------------------------------------------
void tst_QTextStream::generateOperatorCharData(bool for_QString)
{
@@ -2304,12 +2302,14 @@ void tst_QTextStream::generateRealNumbersDataWrite()
{
QTest::addColumn<double>("number");
QTest::addColumn<QByteArray>("data");
+ QTest::addColumn<QByteArray>("dataWithSeparators");
- QTest::newRow("0") << 0.0 << QByteArray("0");
- QTest::newRow("3.14") << 3.14 << QByteArray("3.14");
- QTest::newRow("-3.14") << -3.14 << QByteArray("-3.14");
- QTest::newRow("1.2e+10") << 1.2e+10 << QByteArray("1.2e+10");
- QTest::newRow("-1.2e+10") << -1.2e+10 << QByteArray("-1.2e+10");
+ QTest::newRow("0") << 0.0 << QByteArray("0") << QByteArray("0");
+ QTest::newRow("3.14") << 3.14 << QByteArray("3.14") << QByteArray("3.14");
+ QTest::newRow("-3.14") << -3.14 << QByteArray("-3.14") << QByteArray("-3.14");
+ QTest::newRow("1.2e+10") << 1.2e+10 << QByteArray("1.2e+10") << QByteArray("1.2e+10");
+ QTest::newRow("-1.2e+10") << -1.2e+10 << QByteArray("-1.2e+10") << QByteArray("-1.2e+10");
+ QTest::newRow("12345") << 12345. << QByteArray("12345") << QByteArray("12,345");
}
// ------------------------------------------------------------------------------
@@ -2320,14 +2320,22 @@ void tst_QTextStream::generateRealNumbersDataWrite()
{ \
QFETCH(double, number); \
QFETCH(QByteArray, data); \
+ QFETCH(QByteArray, dataWithSeparators); \
\
QBuffer buffer; \
buffer.open(QBuffer::WriteOnly); \
QTextStream stream(&buffer); \
+ stream.setLocale(QLocale::c()); \
float f = (float)number; \
stream << f; \
stream.flush(); \
QCOMPARE(buffer.data().constData(), data.constData()); \
+ \
+ buffer.reset(); \
+ stream.setLocale(QLocale("en-US")); \
+ stream << f; \
+ stream.flush(); \
+ QCOMPARE(buffer.data(), dataWithSeparators); \
}
IMPLEMENT_STREAM_LEFT_REAL_OPERATOR_TEST(float, float)
IMPLEMENT_STREAM_LEFT_REAL_OPERATOR_TEST(double, float)