は、次のコードを考えてみましょう:どのように正確に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
ある私は2番目の出力が
1.00100000000000000000000000000000000000
のようなものであることを望みます0は実際には、私は1つが
y=mpreal(y.toString(),128);
に
y.set_prec(128);
を置き換えることができることを学んできた。しかしこの種の変換は時間がかかります。
より優れた方法はありますか?
ありがとうございます!
あなたは 'mpreal x(" 1.001 "、64);'を実行したときに既にその精度を放棄しています。あなたは事実の後でそれを取り戻すことはできません。 – user2357112