如何将 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的主要内容,如果未能解决你的问题,请参考以下文章

如何从 QtableWidgetItem 创建字典?

如何在 PyQt4 中将事件监听器添加到动态 QTableWidgetItem?

Pyqt5:QtableWidgetItem“无”

将默认颜色恢复到 QTableWidgetItem?

如何在 QTableWidgetItem 中设置单元格边框和背景颜色?

QTableWidgetItem 将光标移动到一个单元格(不只选择)