打印不带指数的 gmplib mpf_t数
print gmplib's mpf_t number without exponent
是否有一种方法,使用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位数字的浮点数