6
的boost ::多倍::開方(1)似乎返回0爲什麼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 ::開方(I)== 0
我期待sqrt(1)== 1.
我在coliru和我的本地安裝中使用gcc和Boost 1.62獲得了相同的結果。這是否發生在別人身上?我錯過了什麼或者這是一個錯誤?
Eeerm,你還期望什麼? –
我希望sqrt(1)== 1 – Chad
這看起來像一個錯誤100%,對邊緣案例的測試非常差。 http://coliru.stacked-crooked.com/a/068a750da56b55d1 – stefan