C++ 将格式化文本显示为QTextEdit,如C';s printf

C++ 将格式化文本显示为QTextEdit,如C';s printf,c++,qt,qstring,qtcore,qtextedit,C++,Qt,Qstring,Qtcore,Qtextedit,我想在qttextedit中显示一个双精度文本。例如,如果我有 double f = 0.0; 我也是 ui.textEdit->insertPlainText("f = "+ QString::number(f )); 我明白了 f=0 我想展示一下 f=0.000 我想要多少小数位就有多少 无论如何,我现在无法测试它,但我会尝试ui.textEdit->insertPlainText(QString(“f=%1”).arg(f,5,'g',-1,QLatin1Char('0'))

我想在qttextedit中显示一个双精度文本。例如,如果我有

double f = 0.0;
我也是

ui.textEdit->insertPlainText("f = "+ QString::number(f ));
我明白了

f=0

我想展示一下

f=0.000

我想要多少小数位就有多少


无论如何,我现在无法测试它,但我会尝试
ui.textEdit->insertPlainText(QString(“f=%1”).arg(f,5,'g',-1,QLatin1Char('0'))


有关详细信息,请参阅。

您至少有两个Qt选项:

(一)

(二)

构建并运行 输出
您可以始终使用
sprintf
。。。但是你可能不应该。@OlehPrypin:不,你不应该,因为QString(Literal)是你在那里的朋友,甚至QString中的sprintf函数也不推荐用于新代码。请阅读我答案中的链接文档。@Programmer:代码不起作用(甚至不会编译),链接可能指向错误的方法。另外,最好使用QStringLiteral。谢谢,Laszlo。。我没有尝试代码。。但你的回答要详细得多
QString result;
double f = 0.000;
result.sprintf("%.3f", f);
ui.textEdit->insertPlainText(result);
double f = 0.000;
QTextStream standardOutput(stdout);
standardOutput << QStringLiteral("f = %1").arg(f, 0, 'f', 3) << "\n";
#include <QString>
#include <QTextStream>

int main()
{
    QString result;
    double f = 0.000;
    result.sprintf("%.3f", f);
    QTextStream standardOutput(stdout);
    standardOutput << QStringLiteral("f = %1").arg(f, 0, 'f', 3) << "\n";
    standardOutput << "f = " << result << "\n";
    return 0;
}
TEMPLATE = app
TARGET = main
QT = core
SOURCES += main.cpp
qmake && make && ./main
f = 0.000
f = 0.000