假设我有一个
mpf_t number;
等于1.25。我想以给定的精度打印它,即使有尾随零,例如
1.2500000
当我尝试使用mpf_get_str函数打印它时,它以科学(e)格式打印,
mpf_out_str(stdout,10,7,number); //prints 0.125e1
当我使用c ++的cout时,因为mpf_t有<<过载时,
cout << number << endl; //prints 1.25
当我尝试通过在cout中调用setprecision(给定精度)来打印它时,我仍然得到1.25
cout << setprecision(7) << number << endl; //prints 1.25
那么,我该如何打印我喜欢的号码?
答案 0 :(得分:2)
您需要将std :: fixed发送到std :: cout。
#include <iostream>
#include <gmpxx.h>
int main(int argc,char* argv[])
{
mpf_t mpft;
mpf_init(mpft);
mpf_set_d(mpft,1.25);
std::cout.precision(7);
std::cout << std::fixed;
std::cout << mpft << std::endl;
return 0;
}