qt - 小数,向上舍入到整数

时间:2013-11-14 18:24:23

标签: c++ qt

这是我到目前为止所得到的,但我无法弄清楚我的下一步。

当我将值除以3时,我得到整数,但我希望它以一位小数显示,我不知道如何。

完成后,我想根据其值向上或向下舍入小数。如果它是3.5或者超过它应该变为4,如果它是3.4或者它应该是3。

void MainWindow::on_pushButton_clicked(){

int paragraph = ui->lineEdit->text().toInt();
int section = ui->lineEdit_2->text().toInt();
int lines = ui->lineEdit_3->text().toInt();

int sum = (paragraph * (lines + 1) -(section * lines));

ui->label_4->setText(QString::number(sum/3));
}

2 个答案:

答案 0 :(得分:3)

你正在划分整数,因此得到整数。因此,小数部分被截断。

int a = 11;
a = a / 3;        // a is 3 now

double b = 11;
b = b / 3;        // b is 3.6666... now

double c = a / 3; // c is 3 now
c = b / 3;        // c is 3.6666... now

+-*/等运算符的返回类型由第一个对象确定。

只需使用qRound(double(sum)/3.0)qRound(double(sum)/3)即可获得舍入值。

如果要显示1位小数的结果,请使用QString::number(double(sum)/3.0, 'f', 1)

在使用C ++之前,请学习C基础知识(阅读K&R的关键部分)。在使用Qt之前学习C ++。

答案 1 :(得分:2)

如果要上下舍入,可以使用C ++数学函数ceilfloorceil向上舍入,floor向下舍入。

对于显示,您可以指定QString::number(sum/3, 'f', 1)指定您的编号,显示格式参数(有here on the QString docs的解释),然后最后设置2以获得精度。