2016-09-16 8 views
0

MPFR C++(1回目)を使用してプログラムをコンパイルするだけで、いくつかのかなりの数をプリントアウトする必要がありますが、整数の代わりにエンジニアリング表記としてしか出ません。私が読んだところでは、ライブラリは(任意の)整数に最適化されていないので、浮動小数点数を整数として使うことは問題ありません。私はC++の初心者なので、利用可能なすべてのツールの方法はわかりませんが、(大)浮動小数点数を整数のように印刷する方法はありますか?たとえば、1.12276e+44の代わりに、112275575285571389562324404930670903477890625と印刷します。 std::cout.precision(44)を試してみると、1.12275575285571389562324404930670903477890625e+44と表示されています。MPFR C++整数のような浮動小数点数を出力

+0

[他の浮動小数点出力形式を使用していますか?](http://en.cppreference.com/w/cpp/io/manip/fixed)を試しましたか? –

+0

'std :: fixed'を追加するとどうなりますか?ソース:http://en.cppreference.com/w/cpp/io/manip/fixed –

+0

@JoachimPileborgいいえ、私はしていません。リンクをありがとうございます。 'std :: fixed'は私が望むものに近づくようですが、これは小数点を表示しません。それが唯一の方法ですか? –

答えて

3

MPFR C++を使用すると、出力形式を正確に調整できます(標準のC++機能では不十分な場合)。printf例:

std::cout<<x.toString("%34.0RNf")

カッコ内の書式指定用のMPFRのマニュアルを参照してください。 また、あなたはこの質問をチェックするかもしれません:https://stackoverflow.com/a/9627660/479995

+0

ありがとうございます。浮動小数点ではなく、大きな整数で実際に動作する方法はないと思いますか?私の必要性は多項式を生成しており、注文は最大50に達することができますが、私はそれをキャップするべきかどうか、あるいはユーザーに楽しくさせるかどうかまだ考えています... –

+0

実際には、MPFRは大きな整数のライブラリではありません浮動小数点型でそれらをシミュレートするアイデア。 GMP/MPIRには特に焦点が当てられています(mpz_tタイプを参照)。ライブラリにはC++ラッパーがいくつか存在します。 –

+0

浮動小数点型は固定数のビットを格納するため、本当に大きな整数はこのビット数に丸められます。ネイティブのbig-intライブラリは、数を正確に保持するためにストレージを拡張します。 –

関連する問題