Ich kenne mich zwar mit C# überhaupt nicht aus, habe mich aber schon mal vor dreißig Jahren mit dem Problem beschäftigt. Ich glaube, ich habe in einem Seminar eine ADA-Datentypklasse definiert, mit der man lineare Gleichungssysteme ohne Rundungsprobleme lösen konnte, in dem die Zahl als Rationalzahl in Form eines Strings implementiert war.
Inzwischen gibt es für viele Hochsprachen solche Bibliotheken, um große Integer, Rationalzahlen oder Dezimalzahlen zu bearbeiten.
Guckst Du hier:
Um so etwas sinnvoll einsetzen zu können, benötigt man - wie so oft beim professionellen Programmieren - das Verständnis der dahinterstehenden Technik und Mathematik.
Von daher halt ich von BigInteger- und BigRational-Bibliotheken viel und von BigDecimals wenig. Ich würde sogar die ketzerische These aufstellen, dass es BigDecimals gibt, weil der Wunsch danach so groß ist, allein durch die Verwendung einer Bibliothek zur Lösung zu kommen, ohne sich um die Grundlage kümmern zu müssen.
Gleitkommaarithmetik und Genauigkeit sind so wie Kaffeepulver und Expresso.
Zudem dürften Deine Vorstellungen bzgl. der Operatoren utopisch sein.
Bei den einfachen arithmetischen Funktionen können BigInteger- und BigRational ihre Stärken ausspielen. Weil das Ergebnis unabhängig von den Eingangswerten im Wertebereich der Datentypen bleibt.
Gleitkommaarithmetik ist schon bei den Grundrechenarten pseudogenau und muss heuristisch arbeiten, um die richtige Rundung zu „erraten“.
Mathematische Funktionen wie Logarithmieren und Potenzieren (außer Trivialpotenzen) dürfte kaum irgendwo mit beliebiger Genauigkeit verfügbar sein, weil die Mathe-Bibliotheken solche Werte über Näherungsformeln implementieren, die auf den klassischen Elementartypen (double) abgestimmt sind. Die hängen in der Regel auch zusammen.
Ciao, Allesquatsch