如何将 QTableWidgetItem 表示法更改为 standardNotation
Posted
技术标签:
【中文标题】如何将 QTableWidgetItem 表示法更改为 standardNotation【英文标题】:How can I change QTableWidgetItem notation to standardNotation 【发布时间】:2013-01-21 17:15:53 【问题描述】:我有 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
【问题讨论】:
显示一些代码,特别是执行计算并将结果放入表格的代码。 【参考方案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格式,以最简洁的为准 助理是我最好的朋友;)
【讨论】:
以上是关于如何将 QTableWidgetItem 表示法更改为 standardNotation的主要内容,如果未能解决你的问题,请参考以下文章
如何在 PyQt4 中将事件监听器添加到动态 QTableWidgetItem?