0

我有 3 列的 QTableWidget。我将第一列和第二列中的数字相乘,并将结果写入第三列。数字是双倍的。问题是:结果是科学记数法,如“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

4

1 回答 1

1

我想你正在使用QString::numberfunction 。您可以使用此函数的第二个参数来指定如何完成从 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格式,最简洁的
助手是我最好的朋友;)

于 2013-01-21T17:45:23.387 回答