2.2 使い方

コンパイルは -lexfloat というオプションをつけるくらい (簡単)。

以下プログラムの書き方についてのメモ。

#define PRECISION 1000
#include <exfloat.h>

これで 10 進 1000 桁の精度の exfloat というクラスが使えるようになる。

xexfloat 型の変数であるとき、 整数式ならば \fbox{\texttt{x=1;}} のように代入が出来るが、 double の式を代入したりは出来ない ( \fbox{\texttt{x=1.23;}} や、 ydouble 型の変数の場合の \fbox{\texttt{x=y;}} は駄目)。

test-exflib-1.cpp

// test-exflib-1.cpp

#define PRECISION 50
#include <iostream>
#include <exfloat.h>
using namespace std;

int main(void)
{
  exfloat x, y;

  x = "1/3";
  cout << setprecision(PRECISION) << x << endl;

  y = 1;
  y /= 3;
  cout << y << endl;

  x = "#PI";
  cout << x << endl;

  return 0;
}

実行
[katsurada:~] mk% g++ test-exflib-1.cpp -lexfloat
[katsurada:~] mk% ./a.out 
0.33333333333333333333333333333333333333333333333333
0.33333333333333333333333333333333333333333333333333
3.1415926535897932384626433832795028841971693993751
[katsurada:~] mk%

桂田 祐史
2017-09-13