您好,对不起我的基础英语。我试图将mpf_class转换为String。我知道有一个函数(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函数来做到这一点。感谢
答案 0 :(得分:0)
不确定这是否对您有帮助,但是您实际上可以打印mpf_class
对象,并在其上使用I / O操纵器作为典型的float
对象。
这是我的代码
#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
。
参考:https://gmplib.org/manual/C_002b_002b-Formatted-Output.html