Qt类型转换记录

@Qt类型转换记录

#Qt数据类型转换
int转string有两种方法
1、使用QString::number(),如:
long a = 63;
QString s = QString::number(a, 10); // s == “63”
QString t = QString::number(a, 16).toUpper(); // t == “3F”
(解释,变量a为int型或者float,double。10和16为进制) toUpper是大写
2、使用格式化,如:
long a = 63;
QString s = QString(“%1”).arg(a);
第一种方法更常用些

float,double转换为QString

double c = float(a) / float(b) ;
QString d = QString::number(c,10,4);
其中第三个参数表示精度

把QString转换为 double类型
方法1:

QString str=“123.45”;
double val=str.toDouble(); //val=123.45
方法2:
bool ok;
double d;
d=QString(“1234.56e-02”).toDouble(&ok); //ok=true;d;12.3456.
方法2很适合科学计数法形式转换
把QString转换为float型

和double类似,有两种方法

方法1:

QString str=“123.45”;
float d=str.toFloat(); //d=123.45
方法2:
QString str=“R2D2”;
bool ok;
float d=str.toFloat(&ok); //转换是被时返回0.0,ok=false;
把QString型转换为整型

转换为十进制整型,注意:基数默认为10,并且基数必须在2到36之间。如果基数为0,若字符串是以0x开头的就会转换为16进制,若以0开头就转换为八进制,否则就转换为十进制。

Qstring str=“FF”;
bool ok;
int dec=str.toInt(&ok,10); //dec=255 ; ok=rue
int hex =str.toInt(&ok,16); //hex=255;ok=true;
把QString转换为char*型
方法一:
QString qstr(“hello,word”);
const char * p = qstr.toLocal8Bit().data();
方法二:
const char *p = qstr.toStdString().data();
把QString与string相互转换

//从QString 到 std::string
str = qstr.toStdString();
//从std::string 到QString
qstr = QString::fromStdString(str);
把QString转换为QByteArray型
QString str(“hello”);
QByteArray bytes = str.toUtf8(); // QString转QByteArray方法1

QString str(“hello”);
QByteArray bytes = str.toLatin1(); // QString转QByteArray方法2
把QByteArray转换为QString型
QByteArray bytes(“hello world”);
QString string = bytes; // QByteArray转QString方法1

QByteArray bytes("hello world");
QString string;
string.prepend(bytes);// QByteArray转QString方法2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值