Haskell verfügt über einen integrierten Integer
-Typ, der Ganzzahlen mit beliebiger Genauigkeit verarbeitet. Es gibt auch Rational
, was ein Bruch mit beliebiger Genauigkeit ist. Aber die Berechnung solcher Dinge erfordert, einen gemeinsamen Nenner zu finden und dann das Ergebnis auf den kleinsten Nenner zu reduzieren.
Was, wenn ich Gleitkommaarithmetik mit (sagen wir) 100 Bits Genauigkeit in der Mantisse machen wollte? Wie würde ich das tun?
Ich sehe, dass es ein Modul Data.Fixed
gibt, aber das scheint eine Handvoll individuell geschriebener Typen mit fester Genauigkeit zu liefern. Was ich möchte, ist etwas, bei dem ich die Präzision zur Laufzeit dynamisch erhöhen oder verringern kann, je nachdem, wie viel Genauigkeit für jede Aufgabe erforderlich ist.
PS. Ich suche nicht nach dezimalen Arithmetik, obwohl ich denke, es wäre interessant zu wissen, ob das irgendwo verfügbar ist ...
Wie wäre es mit Ссылка ? In diesem BigFloat-Datentyp wählen Sie die Präzision selbst aus. Ich weiß, dass es Dezimal ist, aber vielleicht können Sie es einfach in Binär
ändern