1

プログラムに次のコード行があります。

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

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

それは正常に実行されますが、出力は次のようになります: 2.45654e+06 したがって、希望する小数点以下の桁数で出力番号を取得するにはどうすればよいですか? 一部の小数が削除されても問題ありませんが、出力には少なくとも小数点以下 2 桁が必要です。

4

1 に答える 1

4

QString::number に書式指定子を渡す必要があります。

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

Qt ドキュメントから利用可能な形式、

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" になります。

于 2013-09-05T22:03:49.243 に答える