0

C++ (またはブースト ライブラリ) で小数部の特定の桁数を表示する方法はありますか? しかし、末尾の 0 を小数部に出力したくありません (例: 1.000, 1.500)。このケースを参照してください。

cout << std::setprecision(3) << 5.0/7.0 << endl;    //  0.714
cout << std::setprecision(3) << 12.0/7.0 << endl;   //  1.71
cout << std::setprecision(3) << 7.0/7.0 << endl;    //  1
cout << std::setprecision(3) << 10.5/7.0 << endl;   //  1.5

問題はsetprecision、行 1 と行 2 を別々に印刷することです。ここで、両方の行を印刷0.714し、1.714. 3 行目と 4 行目11.5.

4

1 に答える 1

1

次のようなものはどうですか:

#include <cmath>
using namespace std;

cout << setprecision(ceil(log10(floor(x))+3) << x;

正確には高速ではありませんが、x の整数部分に必要な桁数を計算し、それに関心のある小数点以下の桁数を追加するという考え方です。本当に真剣に考えているのであれば、それを行うために独自のマニピュレータを作成することもできます。

于 2013-10-02T12:33:42.270 に答える