機能概要
Fractionライブラリは、各種ソフトウェアで分数を使用するためのMicrosoft.NETクラスライブラリで、分数型(Fraction構造体)が含まれます。
映像を扱っているソフトウェアのようにフレームレート(60fpsの場合、1フレーム=0.01666…秒)を基準にしているなど、実数だけは誤差が発生して数値を扱うのが難しい場合に分数型の使用が有効です。
また、分数型は実数と分数の相互変換も可能となっているため、ソフトウェアの計算で求められた実数を分数に変換して扱うこともできます。
基本処理
分数型の分子・分母はUInt32(0 ~ 4,294,967,295)の範囲で、正数・負数を扱うことが可能です。また、演算過程でオーバーフローを起こし近似値となっているかの判断も可能です。
四則演算(+, -, *, /)、比較演算(==, !=, <, >, <=, >=)、キャスト(Int32, UInt32, Double, Decimal)をオーバーロードしているため、通常の数値と同様に演算や比較が可能です。
変換処理
実数を分数に変換するアルゴリズムは以下のようになります。
実数に何を掛ければ整数になるか(分母となる値)を、単純に「1 ÷ 小数部」を小数部がなくなるまで繰り返すことで求めます。
〇実数が1.5の場合
(1.5) ⇒ 1 ÷ 0.5 = 2
求められた結果は 2
実数の分子/分母にあてはめると、
(1.5 × 2) / (1 × 2) = 3 / 2
〇実数が2.8の場合
(2.8) ⇒ 1 ÷ 0.8 = 1.25 … 値に小数がある場合はもう一度
(1.25) ⇒ 1 ÷ 0.25 = 4
求められた結果は 1.25 × 4 = 5
実数の分子/分母にあてはめると、
(2.8 × 5) / (1 × 5) = 14 / 5
上記は、計算が単純なもので説明しています。実数の小数桁が多い場合でも、少ない計算回数で分数に変換することができます。
動作環境
動作環境は以下のようになります。
環境 | 説明 |
---|---|
必要環境 | .NET Framework 4.5 ランタイムが必要となります。 |
リソース | ・使用するハードディスクの容量は10Kバイト程度 ・使用するメモリの容量は.NET Frameworkに依存 |
開発環境
開発環境は以下のようになります。
環境 | 説明 |
---|---|
使用OS | Windows 10 |
使用環境 | Visual Studio 2017 (C#) |
使用条件
以下に定める条件で、ソフトウェア(Fractionライブラリ)の無償利用を許可します。
- ソフトウェアを使用した製品にクレジットタイトルを表示し、ソフトウェアライセンス条項ファイルを含めて配布するものとします。
- ソフトウェアの変更・改造、リバースエンジニアリングなどの行為は固く禁止します。
- 明示的・暗黙的かどうかに関わらずあらゆる保証はありません。
ソフトウェアの使用によって発生した損害等に関して、弊社は一切の責任を負わないものとします。
ソフトウェアおよび関連するドキュメントの著作権は (資)ベストウェア が保有しています。