본문 바로가기
C++ 200제/코딩 IT 정보

Qt, 숫자(실수) -> 문자열 변환 함수, QString::number

by vicddory 2018. 11. 18.

Qt, 숫자(실수) -> 문자열 변환 함수, QString::number


Qt가 참 편한 게 QString::number() 함수 하나면 모든 숫자를 문자열로 변환할 수 있습니다.


아래 number 함수 원형을 보시죠.


1
2
3
4
5
6
7
static QString number(intint base=10);
static QString number(uint, int base=10);
static QString number(longint base=10);
static QString number(ulong, int base=10);
static QString number(qlonglong, int base=10);
static QString number(qulonglong, int base=10);
static QString number(doublechar f='g'int prec=6);
cs


number() 함수는 int, uint, long, ulong, qlonglong, qulonglong, double까지 7가지 숫자를 문자열로 변환해 줍니다.


실제로 사용할 땐 이렇게 응용할 수 있죠.


1
2
3
4
5
ui->lineEdit->setText(QString::number(100));
 
ui->lineEdit->setText(QString::number(12.3));
 
QString str = QString::number(100);
cs


Qt에서 숫자를 문자열로 변환해주는 number 함수는 사용하기 참 편합니다. 직관적이고 단순하죠.


Qt 숫자 문자열 변환 QString number[Qt 프로그래밍 예제] 숫자, 실수를 문자열로 바꾸기


그리고 double형도 유연하게 변경할 수 있습니다. 소수점 자리나 표현식을 바꿔가며 변환할 수 있는데요.


Double을 QString로 변환하는 예제도 함께 보시죠.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
qDebug() << QString::number( 123.4567890123456         );
qDebug() << QString::number( 123.4567890123456'f'2 );
 
// 출력 output
"123.4567890123456"
"123.46"
 
qDebug() << QString::number( 123.4567890123456'e'    );
qDebug() << QString::number( 123.4567890123456'e'2 );
 
// 출력 output
"1.234568e+02"
"1.23e+02"
 
qDebug() << QString::number( 123.4567890123456'g'    );
qDebug() << QString::number( 123.4567890123456'g'2 );
 
// 출력 output
"123.457"
"1.2e+02"
cs


인자에 따라 표현하는 방식과 출력할 소수점을 제어할 수 있습니다.


하지만 C++에서 기본으로 제공하는 to_string() 함수는 반환 값이 string 형태라 사용할 수 없네요. 굳이 사용하자면 리턴값을 받아서 QString으로 변환해야 하는데 너무 번거롭죠.


Qt에서 C++ 11 이상의 좋은 문법을 사용하면 좋지만 안 되는 부분도 많습니다.

그러니 숫자를 문자열로 변환할 때는 고민하지 마시고 QString::number() 함수를 사용하세요.


Qt, 숫자(실수) -> 문자열 변환 함수, QString::number