考慮下面的代碼:如何精確擴展mpreal的精度?
#include <iostream>
#include <mpreal.h>
using namespace std;
using mpfr::mpreal;
mpreal x("1.001",64);
mpreal y("1.0",64);
y*=x;
cout<<y<<endl; //1
y.set_prec(128);
cout<<y<<endl; //2
輸出是
1.001
1.00100000000000000002081668171172168513
我希望所述第二輸出是一樣的東西
1.00100000000000000000000000000000000000
事實上,我已經學會了一個可以替代
y.set_prec(128);
到
y=mpreal(y.toString(),128);
但這種轉換是耗時。
有沒有更好/更快的方法?
謝謝!
當您執行'mpreal x(「1.001」,64);'時,您已經將精度丟棄了。在事實發生後你無法取回。 – user2357112