Boost :: multiprecision :: sqrt(1)似乎返回0
#include <boost/multiprecision/cpp_int.hpp>
#include <boost/multiprecision/number.hpp>
#include <iostream>
using std::cout;
using std::endl;
int main() {
namespace mp = boost::multiprecision;
mp::cpp_int i(1);
cout << "i == " << i << endl;
cout << "mp::sqrt(i) == " << mp::sqrt(i) << endl;
}
输出:
我== 1
mp :: sqrt(i)== 0
我希望sqrt(1)== 1。
我在coliru以及使用gcc和Boost 1.62的本地安装上得到相同的结果。这会发生在其他人身上吗?我错过了什么或者这是一个错误吗?