質問: 単位換算係数の換算は可能でしょうか? あるシステム(a)から、別のシステム(b)に 単位換算係数のインターフェースを行いたいと考えています。 たとえば、 システムaでは 単位a:単位b システムbでは 単位b:単位c の比率を保持する状態を作り、 システムaからbへ何らかの数量のインターフェースを行ったとき、 単位a→単位cの換算を簡易に行いたいのです。 各システムのテーブル構造は以下のようになっています。 -------------------------------------------- <<システムa 品目単位換算マスタ>> ●=key ●品目コード ●代替単位 分子 分母 システムa基本数量単位 -------------------------------------------- -------------------------------------------- <<システムb 品目単位換算マスタ>> ●=key ●品目コード ●代替単位 分子 分母 システムb基本数量単位 -------------------------------------------- システムaでは基本数量単位に対して考えられうるすべての 換算分母、分子を持っています。 システムbはそれを利用して、自システムの数量単位を正とする 換算分母、分子を持ちたいと考えています。 このようなインターフェースは可能でしょうか? コンピュータで比率を計算しようとすると小数が出てきますので、 分母、分子といった項目どうやって格納してよいか検討がつきません。。 言語はc#です。 いくら考えてもわからないので、お聞きすることにいたしました。 どなたかお知恵をお貸し願えませんか? よろしくお願いいたします。
回答: 変換係数は全て分子・分母とも整数の分数で保持しているということですか。 システムa基本数量単位からシステムb基本数量単位への変換係数(分数)はあるんですよね。 それだと分数(有理数)計算用のライブラリを作れば済むことでは? 分数の掛け算なんて分子同士、分母同士で掛ければ良いだけだし、割り算も分子分母を入れ替えるだけで同様だしね。 後は約分だけ作れば質問の用途には十分でしょう。約分は分子分母を公約数で割るだけです。公約数は互除法で求まります。 # 通分も実装すれば四則演算が可能です