2013-11-14 3 views
3

Это то, что я получил до сих пор, но не могу понять, как это сделать.qt - десятичные и округлые до целых чисел

Когда я делю свою сумму на 3 - я получаю целые числа, но я хочу, чтобы она отображалась только с одним десятичным значком, но не знаю, как это сделать.

И когда это будет сделано, попробуйте округлить десятичную величину вверх или вниз в зависимости от ее количества. , если его 3,5 или более - она ​​должна стать 4 и если его 3,4 и вниз должно быть 3.

вы можете помочь: S

аннулируются 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)); 

}

ответ

1

Если вы хотите, чтобы округлить вверх и вниз, вы можете использовать C++ математические функции ceil и floor. ceil раундов вверх, и floor раундов вниз.

Для отображения вы можете указать QString::number(sum/3, 'f', 1), который указывает ваш номер, аргумент формата отображения (есть объяснение этого here on the QString docs), а затем, наконец, устанавливает 2 для точности.

+0

Я вычислил дисплей для своих десятичных знаков, как вы показали, но на потолке и полу я потерял. Можете ли вы привести пример? – Giefdonut

+0

Конечно, 'int roundedUp = ceil (4.2); int roundedDown = floor (4.2); ' –

+0

' 'f'', а не' 'g''. –

2

Вы делите интегралы и, следовательно, получаете целое число. Таким образом, дробная часть усечена.

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 (прочитайте критические части K&R) перед использованием C++. И изучите C++ перед использованием Qt.

Смежные вопросы