GMP:如何将数字写成十进制值?

GMP: how to write a number as a decimal value?

我有一个 mpq_class 实例,我想将它显示为十进制值,而不是分数。

mpq_class nb = 1.75;
cout << nb << endl;

输出:

7/4

如何输出 1.75 而不是 7/4

最简单的方法可能是转换为 mpf_class,例如cout << mpf_class(nb) << endl;。不过,您可能需要显式设置输出精度以避免因浮点错误打印出垃圾。