1

gmplibを使用してmpf_t、指数なしで数値を出力する方法はありますか?指数を読み取り、小数を手動で移動する関数を作成する必要はありません。そのようなものはやり過ぎのように思われるからです。

4

2 に答える 2

2

私はgmplibに精通していませんが、固定フォーマットマニピュレーターをサポートしていますか?

標準のC++の場合:

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
   double d = 1.12345e6;

   cout << d << endl;
   cout << fixed << d << endl;
   return 0;
}

生成:

$ ./test
1.12345e+06
1123450.000000

結果をさらに微調整するために、の精度setprecision(n)と幅で遊ぶことができます。setw(n)

于 2013-01-09T14:12:09.193 に答える
1

実際、GMPLibはmpf_t値を適切に出力する方法を提供します。以下を参照してください。

#include <stdio.h>
#include <gmp.h>

int main(int argc, const char * argv[]) {
    mpf_t f;
    mpf_init_set_str(f, "314.15926", 10);
    gmp_printf("%.5Ff\n", f);
    return 0;
}

スクリプトを実行すると、コンソールは次のように出力します。

314.15926

ここで、最も重要なことは、GMTフロートフォーマットフラグの約5です:%。5Ff、これは、5つのデジタルでフロートを出力することを意味します

于 2016-12-08T00:58:36.130 に答える