Closed4
INumber型を継承した分数型に関する考察
昔、分数型というものを考えたことがあった(その時は連分数を表現したかったとかなんとか)
整数(もしくは小数)の割り算って、コンピュータで行うと誤差が蓄積してしまう
なので、割り算の演算を分数として記録しておいて記録しておき、
分数での演算を行ったうえで最後にfloatにする
分数は英語でFractionなのでFraction型としよう
割り算だけではなく、四則演算を通分などして分数として記録する
ちなみに下のコードのようなことをしても、ちゃんと-2と表示される
using System;
public class Program
{
public static void Main()
{
var a = 1.0f /3.0f - 1f/1f;
a-=1f+1f/3f;
Console.WriteLine(a*1);
}
}
だからまぁ......既存のシステムで誤差が蓄積しそうな実装をしてもそんなに問題ではないんだよな
つまりこういうこと
同じこと考えてる人が既にいましたね・・・
このスクラップは2023/03/30にクローズされました