打印不带指数的 gmplib mpf_t数

print gmplib's mpf_t number without exponent

本文关键字:mpf gmplib 指数 打印      更新时间:2023-10-16

是否有一种方法,使用gmplib,打印一个没有指数的mpf_t数字?我宁愿不必编写一个函数来读取指数并手动移动小数,因为这似乎有点多余。

我不熟悉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)来调整精度和宽度,以进一步调整结果

实际上,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("%.5Ffn", f);
    return 0;
}

如果运行脚本,控制台将输出:

314.15926

在这里,最重要的是关于GMT浮点格式标志中的5:%。5Ff,这意味着它将输出5位数字的浮点数