boost::rational

トップページ > 数学 >

abstract

必要なヘッダ
<boost/rational.hpp>
出来ること
分数の計算
リファレンス
en / jp

sample

#include <iostream>
#include <boost/rational.hpp>
using namespace std;

int main()
{
	boost::rational<int> a( 4, 3 ); // 4/3
	boost::rational<int> b( 1, 2 ); // 1/2

	boost::rational<int> c = a + b; // 4/3 + 1/2 = 11/6
	cout << c << endl;

	a = c - 5; // 11/6 - 5 = -19/6
	cout << a << endl;

	c = 4;
	b *= -c; // 1/2 * -4 = -2
	cout << b << endl;

	double d = boost::rational_cast<double>( a );
	cout << d << endl;

	int n = boost::rational_cast<int>( b );
	cout << n << endl;

	return 0;
}

出力例

11/6
-19/6
-2/1
-3.16667
-2

etc

有理数です。分数です。おわり。

…というのも芸がないのですが、それ以上書くこと無いですし。

presented by k.inaba (kiki .a.t. kmonos.net) under CC0