Qtの基礎 - 文字列
ナビゲーションに移動
検索に移動
概要
数値を文字列に変換する
QString::number()を使用して、数値を文字列に変換する。
少数を変換する場合、第2引数にeまたはEを指定すると指数表記、fを指定すると少数表記になる。
この時、第3引数の数値は、小数点以下の桁数となる。
第2引数にgまたはGを指定すると、指数表記と少数表記のうち、より簡潔に表現できる方で変換される。
この時、第3引数の数値は、有効桁数となる。
第2引数の詳細は、Qtの公式Webサイトを参照すること。
int i = 10;
qDebug() << QString::number(i); // 10進数として文字列化
qDebug() << QString::number(i, 8); // 8進数として文字列化
qDebug() << QString::number(i, 16); // 16進数として文字列化(アルファベット小文字)
qDebug() << QString::number(i, 16).toUpper(); // 16進数として文字列化(アルファベット大文字)
double d = 12.3456789;
qDebug() << QString::number(d, 'e', 1); // 浮動小数12.3456789を小数点以下1桁で指数表記
qDebug() << QString::number(d, 'e', 7); // 浮動小数12.3456789を小数点以下7桁で指数表記
qDebug() << QString::number(d, 'f', 1); // 浮動小数12.3456789を小数点以下1桁で小数表記
qDebug() << QString::number(d, 'f', 7); // 浮動小数12.3456789を小数点以下7桁で小数表記
qDebug() << QString::number(0.0000001, 'g', 7); // 浮動小数0.0000001を有効桁数7桁で簡潔表記
qDebug() << QString::number(1.2345678, 'g', 7); // 浮動小数1.2345678を有効桁数7桁で簡潔表記
パディング
以下の例では、1~1000までの整数を0001、0002、0003、...、1000という文字列にパディングしている。
第3引数(初期値 : false)の違いは、第1引数で指定した桁数を超える場合、後ろを切る捨てるか否かの設定である。
for(int i = 1; i <= 1000; i++)
{
qDebug() << QString::number(i).rightJustified(4, '0');
}
for(int i = 1; i <= 1000; i++)
{
qDebug() << QString::number(i).rightJustified(4, '0', true);
}
また、rightJustifiedメソッドは、文字列の先頭を空白で埋めるなどもできる。
QStringList list = {"a", "aa", "aaa", "aaaa", "aaaaa"};
for(QString str : list)
{
qDebug() << str.rightJustified(5, ' ');
}