目录
1.普通数值与字符串之间的转换
QString类从字符串转换为整数的函数有:
int toInt(bool *ok = Q_NULLPTR,int base = 10) constlong toLong(bool *ok = Q_NULLPTR,int base = 10) constshourt toShort(bool *ok = Q_NULLPTR,int base = 10) constuint toUInt(bool *ok = Q_NULLPTR,int base = 10) constuint toULong(bool *ok = Q_NULLPTR,int base = 10) const
这些函数如果不设置参数,缺省表示从十进制表示的字符串转换为整数;若指定整数基参数, 还可以直接将二进制、十六进制字符串转换为整数。
QString将字符串转换为浮点数的函数有:
double toDouble(bool *ok = Q_NULLPTR) constfloat toFloat(bool *ok = Q_NULLPTR) const
浮点数转换为QString,且保留浮点数两位小数:
QString str;float flo=3.141;//使用QString的静态函数number()和asprintf()str = QString::number(flo,'f',2);str = QString::asprintf("%.2f",flo);//使用公共函数setNum()和sprintf()str = str.setNum(flo,'f',2);str = str.sprintf("%.2f",flo);
2.进制转换
QString的函数setNum()或静态函数number()有多个重载函数定义,可以处理各种类型的整数和浮点数,在处理整数时还可以指定进制。它们的函数原型是:
QString &setNum(int n,int base = 10)QString number(int n,int base = 10)
其中n是待转换的整数,base是使用的进制,缺省为十进制,也可以指定为十六进制和二进制。
3.字符串与数值转换应用示例
(1)widget.h文件:
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private slots:
void on_btnCal_clicked(); //计算 按键单击响应
void on_btnDec_clicked(); //十进制转换为其他进制
void on_btnBin_clicked(); //二进制转换为其他进制
void on_btnHex_clicked(); //十六进制转换为其他进制
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
(2)widget.cpp文件
#include "widget.h"
#include "ui_widget.h"
#include <QString>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_btnCal_clicked()
{ //计算 按键单击响应
int num=ui->editNum->text().toIn