String 如何将mpf_类转换为字符串

String 如何将mpf_类转换为字符串,string,type-conversion,gmp,String,Type Conversion,Gmp,你好,对不起,我的基础英语。我正在尝试将mpf_类转换为字符串。我知道有一个函数get_str,但它只显示数字及其指数。我想得到一个字符串中的整个表达式。我试着使用ostreamstring,但我想知道是否有其他方法可以做到这一点。如果我说清楚了,请告诉我 我所做的基本上是: std::ostringstream show; mpf_class result, Afact,Bfact,Cfact; result=Afact*Bfact/Cfact; show << result; u

你好,对不起,我的基础英语。我正在尝试将mpf_类转换为字符串。我知道有一个函数get_str,但它只显示数字及其指数。我想得到一个字符串中的整个表达式。我试着使用ostreamstring,但我想知道是否有其他方法可以做到这一点。如果我说清楚了,请告诉我

我所做的基本上是:

std::ostringstream show;
mpf_class result, Afact,Bfact,Cfact;
result=Afact*Bfact/Cfact;
show << result;
ui->lineEdit_5->setText(QString::fromStdString(show.str()));

如您所见,我在一个QT项目中工作,我需要在QLineEdit中显示结果,并使用ostreamstring使其工作。我只是想知道是否有gmp功能可以做到这一点。谢谢

我不确定这是否能帮助您,但您实际上可以打印一个mpf_类对象,并在其上使用I/O操纵器作为典型的浮点对象

这是我的密码

#include <gmpxx.h>
#include <iostream>
#include <iomanip>

int main(void) {
    mpf_class a;
    a = 3141592653589793.2;

    std::cout << a << std::endl;
    // Outputs 3.14159e+15

    std::cout << std::uppercase << std::showpos << std::setprecision(3) << a << std::endl;
    // Outputs +3.14E+15

}
然后可以使用std::ostringstream对象而不是std::cout


参考资料:

我试过使用ostreamstring-你能分享这段代码吗?也许使用f.get\u mpf\t的gmp\u*printf会给你更多选择?你应该展示你的两个解决方案得到了什么,并解释它们如何不能让你满意。