Qtの基礎 - 文字列

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
2021年2月16日 (火) 15:52時点におけるWiki (トーク | 投稿記録)による版 (ページの作成:「== 概要 == <br><br> == 数値を文字列に変換する == <code>QString::number()</code>を使用して、数値を文字列に変換する。<br> <br> 少数を変…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

概要



数値を文字列に変換する

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, ' ');
 }