C ++:将“boost :: multiprecision :: float128”转换为“double”

时间:2015-01-30 17:43:23

标签: c++ boost floating-point-precision multiprecision

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

double a = functionA();

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

error: no suitable conversion function from "boost::multiprecision::float128" to "double" exists|

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:11)

来自Boost文档:

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

mpz_int z(2);
double i = z.convert_to<double>(); // sets i to 2

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