实验目的
实现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(); //获取数量 字符串转为int
float price = ui->editPrice->text().toFloat(); //获取价格 字符串转为float
float total = num*price; // int*float 获取结果 float
QString 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);
}
效果