C++浮動小数点数クラスf=g*h+x*yのように,mpf_classクラスの一時中間変数を必要とする式の場合,これらの変数は最終結果を格納するfと同じ精度になります。この挙動が相応しくないときには,明示的にコンストラクタを呼び出して下さい。prec)mpf_classコンストラクタです。double型を除くすべての標準C++データ型を利用できます。precが与えられると,初期精度bitがこの値でセットされます。precがセットされていないと,初期精度はopによって規定されます。mpf_classや式の場合は,その変数の精度が適用されます。2項から成る式の精度は,大きい方の精度が適用されます。prec)mpf_t変数を利用したmpf_classコンストラクタです。fの値が新規生成されたmpf_class変数にコピーされ,一切の参照関係は生じません。precが与えられていると,値の初期精度(ビット)となります。与えられていない場合は,初期精度はfの精度になります。precが与えられていれば,値の初期精度(ビット)となります。Floats)が使われます。文字列が正常な浮動小数点数でない場合はstd::invalid_argument例外が発生します。operator=でも同様です。1.23e-1_mpf文法で生成されます。これはmpf_class("1.23e-1")と同義です。op)与えられたopの値をmpf_classに変換してセットします。前述のコンストラクタ同様に,同じデータ型であればそのまま利用できます。operator=は値を代入するだけで,元の変数の精度をコピーすることはなく,必要に応じて切り捨ても実行します。これはmpf_set関数等の代入関数と同様です。mpf_classクラスのコピーを行うコンストラクタは,デフォルトのコンストラクタや割り当て関数とは異なる動作になります。yの値はxの精度に切り捨てられるテンプレート化したプログラムを使うアプリケーションは,多様な精度を持つmpf_class変数を使う計算部において,何が行われるかということに留意する必要があります。op)これらの関数群はGMPのCルーチンへのC++インターフェースを提供します。doubleを除く,全ての標準C++データ型の比較に利用できます。hypot関数を実行した結果の精度については現在は保証されていません(訳注:精度保証が欲しければMPFRのmpfr_hypot関数を使いましょう。prec)mpf_classクラスの現段階でのデフォルト精度をセットしたり入手したりできます。Floats)はこのmpf_class::set_prec_raw関数にも当てはまります。mpf_classに対しては,破棄される前に割り当てられた精度で格納されます。この操作はアプリケーション側で実施されるべきものなので,自動的に行う機構は用意していません。