Apfloat bietet hohe Präzision auf der Mantisse, aber scheint weniger als übliche Präzision auf dem Exponenten zu geben (basierend auf der Tatsache, dass es mit "Logarithmus von Null" für Werte kollidiert, die double verarbeiten kann). Es ist also nicht für große Zahlen nützlich.
Auch sagt die Dokumentation:
„A pitfall existiert mit dem Konstrukteuren Apfloat (float, long) und Apfloat (Doppel, lang) Da floats und doubles werden intern immer in Radix 2 dargestellt, um die Konvertierung zu. jedes andere Radix verursacht normalerweise Rundungsfehler, und der resultierende Apfloat wird nicht auf die gewünschte Anzahl von Stellen genau sein
Zum Beispiel kann 0,3 nicht genau in Basis 2 dargestellt werden. Wenn Sie ein Apfloat wie erstellen neuer Apfloat (0.3f, 1000), die resultierende Zahl wird nicht auf 1000 Ziffern genau sein, sondern nur auf ungefähr 7 Ziffern (in Radix 10). Tatsächlich wird die resultierende Zahl ungefähr so sein wie 0.30000001192092896 ... "
Dies scheint Apfloat minimal nützlich zu machen.
BigDecimal hat keine Logarithmusfunktion, und die Dokumentation sagt nicht, ob es Ihnen erlaubt, größere Zahlen als ein Doppel zu machen; der Exponent ist 32 Bit, eine Art von.
Eine allgemeine Frage von einem Standpunkt von Interesse ... Was ist Ihre Anwendung, die mehrere tausend Dezimalstellen Genauigkeit erfordert? – Simon
Dies ist ein Hobby, kein Job: Ich würde gerne mehr Ziffern von http://en.wikipedia.org/wiki/Feigenbaum_constant berechnen –