6

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;
}

输出:
i == 1
mp::sqrt(i) == 0

我希望 sqrt(1) == 1。

我在coliru和本地安装的 gcc 和 Boost 1.62上得到了相同的结果。这会发生在其他人身上吗?我错过了什么还是这是一个错误?

4

1 回答 1

5

是的,这绝对是一个错误。3 天前,它以票号 #12559的形式报告给了 Boost 错误跟踪器。

于 2016-10-30T21:09:30.327 回答