Как я могу изменить нотацию QTableWidgetItem на стандартную нотацию

У меня есть QTableWidget с 3 столбцами. Я умножаю числа в первом и втором столбце и записываю результат в третий столбец. Цифры двойные. Проблема в том, что результат в научной нотации типа "1.4e+3". Как я могу изменить запись на стандартную запись? Я использую Qt 4.8 и Ubuntu 12.10.

Я заполняю первые два столбца:

QTableWidgetItem *itm0=new QTableWidgetItem("12345.6781");
ui->tableWidget->setItem(0,0,itm0);
QTableWidgetItem *itm1=new QTableWidgetItem("223.132");
ui->tableWidget->setItem(0,1,itm1);

Я умножаю числа и записываю результат

double num0=ui->tableWidget->item(0,0)->text().toDouble();
double num1=ui->tableWidget->item(0,1)->text().toDouble();
double result=num0*num1;

QTableWidgetItem *itm2=new QTableWidgetItem(QString::number(result));
ui->tableWidget->setItem(0,2,itm2);

результат 2.75472e+06, но на самом деле результат 2754715,8458092


person ekremk    schedule 21.01.2013    source источник
comment
Покажите какой-нибудь код, в частности код, который выполняет вычисления и помещает результат в таблицу.   -  person hyde    schedule 21.01.2013


Ответы (1)


Я полагаю, вы используете функцию QString::number. Вы можете использовать второй аргумент этой функции, чтобы указать, как будет выполняться преобразование из double в QString. Вот результаты:

double num = 1234.4565;
qDebug()<< QString::number(num);//"1234.46" 
qDebug()<< QString::number(num, 'e');//"1.234457e+03" 
qDebug()<< QString::number(num, 'f');//"1234.456500" 

Использовать
формат 'e' как [-]9.9e[+|-]999
формат 'E' как [ -]9.9E[+|-]999
'f' в формате [-]9.9
'g' использовать формат e или f, в зависимости от того, какой из них самый краткий
'G' используйте формат E или f, в зависимости от того, какой из них самый краткий
Ассистент — мой лучший друг ;)

person s4eed    schedule 21.01.2013