需求:
显示一个float或者double类型的数,要求小数点后的数字位数为定值。
考虑STL库的ostringstream或者Qt的QString::arg(), number
对于stringstream,使用比较繁琐,要联合使用std::fixed和std::setprecision才能实现固定小数位数显示,qstring则要简单一些。看示例:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <sstream>
#include <iomanip>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);double d = 211.23;std::ostringstream oss;oss<<std::fixed<<std::setprecision(6)<<d;ui->lineEdit->setText(QString::fromStdString(oss.str()));ui->lineEdit_2->setText(QString("%1").arg(d, 0, 'f', 6));ui->lineEdit_3->setText(QString::number(d, 'f', 6));
}MainWindow::~MainWindow()
{delete ui;
}
效果:
注意,使用qstring的时候,不论使用arg还是number,format输入参数都必须是'f',不能用'g',否则可能无法获得理想的效果。