C++:将"boost :: multiprecision :: float128"转换为"double"

use*_*546 4 c++ boost floating-point-precision multiprecision

我正在使用boost multiprecision库,更确切地说是boost :: multiprecision :: float128类型.使用ICPC进行编译,在尝试执行以下操作时遇到一些错误:

double a = functionA();
Run Code Online (Sandbox Code Playgroud)

其中functionA()返回一个boost :: multiprecision :: float128变量.

error: no suitable conversion function from "boost::multiprecision::float128" to "double" exists|
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

Ric*_*ten 11

从Boost文档中:

可以通过convert_to成员函数将数字转换为任何内置类型:

mpz_int z(2);
double i = z.convert_to<double>(); // sets i to 2
Run Code Online (Sandbox Code Playgroud)

http://www.boost.org/doc/libs/1_57_0/libs/multiprecision/doc/html/boost_multiprecision/tut/conversions.html