PDA

View Full Version : QString mystery



JPNaude
19th January 2011, 08:35
Hi

I've used QString many many times before but the following does not make any sense to me. I have this code:



QString version;
QString seperator = QString(".");
int minor = 0;
int major = 0;
if (minor <= 9)
version = QString("%1%200%3").arg(major).arg(seperator).arg(minor);
else if (minor <= 99)
version = QString("%1%20%3").arg(major).arg(seperator).arg(minor);
else
version = QString("%1%2%3").arg(major).arg(seperator).arg(minor);

qDebug() << seperator;
qDebug() << version;


Amazingly the qDebug() outputs gives:


"."
"000."


While the result should clearly be "0.000"

If anyone can give an explanation why version is wrong, I would really appreciate it.
Thanks,
Jac

Added after 12 minutes:

Solved it:



QString version = QString::number(major) + QString(".%1").arg(minor,3,10,QChar('0'));

high_flyer
19th January 2011, 08:48
Try this:


QString version;
QString seperator = QString(".");
int minor = 0;
int major = 0;
if (minor <= 9)
version = QString("%1%200%3").arg(QString::number(major)).arg(seperator).arg(Q String::number(minor));
...//etc
qDebug() << seperator;
qDebug() << version;