一連の値を計算するプログラムを作成しましたが、すべての値が特に長い double です。これらの値をそれぞれ 15 の有効数字で表示したいと思います。私が抱えている問題を説明するコードは次のとおりです。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double x = 0.12345678901234567890;
double y = 1.12345678901234567890;
cout << setprecision(15) << fixed << x << "\t" << y << "\n";
return 0;
}
setprecision だけでは末尾のゼロが表示されないため、このサイトの他の回答で見たように固定を追加しました。しかし、今では小数点以下 15 桁のように見え、値が 0 ではない場合、これは私が望むものではありません。上記の出力からこれを確認できます。
0.123456789012346 1.123456789012346
最初の数値には 15 個のシグフィグがありますが、2 番目の数値には 16 個あります。これを解決するにはどうすればよいですか?
編集: setprecision を使用するように具体的に求められているため、cout.precision を試すことができません。