简体   繁体   中英

Qt: format an integer in a QString

I would like to format an integer in a QString . I would like to always have 6 numbers. For example "1" should be "000001" and "12" should be "000012".

I try to do like with printf(%06d, number) . So I wrote this

QString test; test = QString("%06d").arg(QString::number(i)); qDebug()<<test;

i is implemented in a loop for . But it does not work since I have:

"0d" "1d" "2d" "3d"...

Does anyone know how to do this please?

String's argument support doesn't work like printf. It's all documented. What you want is:

QString test = QString("%1").arg(i, 6, 10, QLatin1Char('0'));

You could try the following:

int a = 12;
QString test = QString("%1").arg(a, 6, 'g', -1, '0');
qDebug() << test; // outputs "000012"

Have a look in the documentation for QTextStream . There are a number of settings for formatting as well as a number of handy manipulators. This is analogous to the text manipulators from STL iostream

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM