我有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
答案 0 :(得分: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格式,以最简洁的为准
助理是我最好的朋友;)