簡體   English   中英

為什么Boost :: multiprecision :: sqrt(1)返回0?

[英]Why does Boost::multiprecision::sqrt(1) return 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 :: sqrt(i)== 0

我希望sqrt(1)== 1。

我在coliru和我的本地安裝上使用gcc和Boost 1.62獲得了相同的結果。 這會發生在其他人身上嗎? 我錯過了什么或這是一個錯誤嗎?

是的,這絕對是個錯誤。 3天前它被報告給Boost bug跟蹤器作為票#12559

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM