#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QKeyEvent>
#include <math.h>
#include <QDebug>
#define minDValue 1e-15
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
setFocusPolicy(Qt::StrongFocus);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::keyPressEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_Enter) //响应Enter按键
{
QString str = ui->lineEdit->text();
double dValue = str.toDouble();
double dValue_temp = str.toDouble();
dValue_temp += minDValue;
dValue_temp = dValue_temp - (int)dValue_temp;
double dMinValue = minDValue;
dMinValue *= 10;
int count = 0; //计算小数点后面的有效位数
while(fabs(dValue_temp) > dMinValue)
{
dMinValue *= 10;
dValue_temp *= 10;
dValue_temp = dValue_temp - (int)dValue_temp;
count++;
}
ui->lineEdit->setText(QString::number(dValue, 'f', count)); //更新显示结果
}
}
输入:
按Enter键以后,输出:
实现的功能:输入编辑框一个数字,自动去除小数点后面无效的0值
第一次写博客,希望可以帮到有需要的人,有不正之处,欢迎大神指点。