如何在qt / c中打印所有小数的长双精度?

时间:2013-09-05 21:59:53

标签: c++ qt number-formatting

我的程序中有以下代码行:

long double endJD = 2456541.41563;
QString tempString = "";
tempString.append(QString::number((double) endJD));

QMessageBox msgBox;
msgBox.setText(tempString);
msgBox.exec();

它运行正常,但输出来了:2.45654e + 06所以如何获得所需小数位的输出数?我可以删除一些小数,但我想在输出中最少两个小数点。

1 个答案:

答案 0 :(得分:4)

您需要将格式说明符传递给QString :: number。

tempString.append(QString::number((double) endJD, 'f'));

Qt docs提供的格式,

e   format as [-]9.9e[+|-]999
E   format as [-]9.9E[+|-]999
f   format as [-]9.9
g   use e or f format, whichever is the most concise
G   use E or f format, whichever is the most concise

如果您没有指定,则默认为“g”。