Qt5.9 C++开发指南 4.1 字符串和数值之间转换

在这里插入图片描述
主要有两个函数,分别是toInt(),setNum()
其中setNum()和QString::number效果一样。
使用方法

strNum  = QString::number(val,10);
strNum = strNum.setNum(val,10);
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_pBtnSum_clicked()
{
    QString strNum = ui->liEditNum->text();
    QString strPrice = ui->liEditPrice->text();

    if(strNum.isEmpty() || strPrice.isEmpty())
        return;
    int num = strNum.toInt();//如果字符串是‘ff’,那么base = 16,最后得到的num = 255,如果设置base=10,那么会失败,base默认为10
    float price = strPrice.toFloat();
    float total = num*price;
    strPrice = strPrice.sprintf("%.2f",total);
    ui->liEditTotal->setText(strPrice);
}

void Widget::on_pBtnDec_clicked()
{
    QString strNum = ui->liEditDec->text();
    if(strNum.isEmpty())
        return;
    int val = strNum.toInt();
    strNum = strNum.setNum(val,16);//转为16进制 setNum(待转换的数字,需要转换的进制)
    strNum = strNum.toUpper();//转为大写
    ui->liEditHex->setText(strNum);
    strNum = strNum.setNum(val,2);
    ui->liEditBin->setText(strNum);
}

void Widget::on_pBtnBin_clicked()
{
    QString strNum = ui->liEditBin->text();
    if(strNum.isEmpty())
        return;
    bool ok;
    int val = strNum.toInt(&ok,2);
    strNum = strNum.setNum(val,16);//转为16进制 setNum(待转换的数字,需要转换的进制)
    strNum = strNum.toUpper();//转为大写
    ui->liEditHex->setText(strNum);
    strNum = strNum.setNum(val,10);
    ui->liEditDec->setText(strNum);
}

void Widget::on_pBtnHex_clicked()
{
    QString strNum = ui->liEditDec->text();
    if(strNum.isEmpty())
        return;
    bool ok;
    int val = strNum.toInt(&ok,16);
    strNum = strNum.setNum(val,10);//转为16进制 setNum(待转换的数字,需要转换的进制)
    ui->liEditDec->setText(strNum);
    strNum = strNum.setNum(val,2);
    ui->liEditBin->setText(strNum);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值