实验目的
实现int 、float 转换为字符串并显示
实现数字字符以二进制、十进制、十六进制显示
实现十进制、二进制、十六进制之间的相互转换
#include "numconvert.h"
#include "ui_numconvert.h"NumConvert::NumConvert(QWidget *parent): QWidget(parent), ui(new Ui::NumConvert)
{ui->setupUi(this);
}NumConvert::~NumConvert()
{delete ui;
}//单价*数量 =金额 计算
void NumConvert::on_btnCompute_clicked()
{int num =ui->editNum->text().toInt(); //获取数量 字符串转为intfloat price = ui->editPrice->text().toFloat(); //获取价格 字符串转为floatfloat total = num*price; // int*float 获取结果 floatQString str ;str =str.setNum(total,'f',2); //浮点数 保留两位小数ui->editTotal->setText(str);
}//十进制转换为 二进制、十六进制
void NumConvert::on_btnDec_clicked()
{int dec = ui->editDec->text().toInt();QString binStr;binStr= QString::number(dec,2); //转换为二进制字符串ui->editBin->setText(binStr);QString hexStr;hexStr = QString::number(dec,16); //转换为16进制字符串hexStr= hexStr.toUpper(); //16进制以大写展示ui->editHex->setText(hexStr);}//二进制转换为十进制、十六进制
void NumConvert::on_btnBin_clicked()
{bool ok ;int val = ui->editBin->text().toInt(&ok,2); //以二进制读入QString decStr = QString::number(val,10); //转换为十进制字符串ui->editDec->setText(decStr);QString hexStr =QString::number(val,16); //转换为十六进制字符串hexStr=hexStr.toUpper();ui->editHex->setText(hexStr);
}//十六进制转换为二进制、十进制
void NumConvert::on_btnHex_clicked()
{bool ok;int val = ui->editHex->text().toInt(&ok,16);//读入十六进制QString decStr = QString::number(val,10);//转换为十进制ui->editDec->setText(decStr);QString binStr =QString::number(val,2); //转换为二进制ui->editBin->setText(binStr);}
效果