Performace BigDecimal vs. BigInteger und BigDecimal
Ich überlegte, ob BigDecimal und BigInteger oder nur BigDecimal, um mein Leben einfacher und weniger konvertieren hin und her. Ist es ein Nachteil, nur mit BigDecimal in Bezug auf Ressourcen?
Wie verwenden nur primitive Datentypen und BigInteger oder nur BigInteger mein Leben erleichtern und weniger die Umwandlung hin und her??
Was genau wollen Sie tun?
Ich mache ein paar Berechnungen zwischen großen zahlen und kleinen zahlen, dezimal und nicht dezimal-zahlen.
Verwenden Sie In diesem Fall BigDecimal nur. Denken Sie daran, dass es Aufwand den sich ständig ändernden Arten zu...
Wie verwenden nur primitive Datentypen und BigInteger oder nur BigInteger mein Leben erleichtern und weniger die Umwandlung hin und her?
In dem Fall, dass Sie nur Ganzzahlen, und wollen nur ganzzahlige Ergebnisse (im Feld Nummer Sinn); dann sollten Sie BigInteger statt BigDecimal. Zum durchführen arithmetische Operationen auf BigInteger, müssen Sie BigIntegers, so gibt es nicht viel zu halten, Werte primitiver Typen, es sei denn, Sie sind wirklich etwas anderes mit Ihnen vor der großen Zahl Teil.
Ich mache ein paar Berechnungen zwischen großen zahlen und kleinen zahlen, dezimal und nicht dezimal-zahlen.
Verwenden Sie In diesem Fall BigDecimal nur. Denken Sie daran, dass es Aufwand den sich ständig ändernden Arten zu...
Wie verwenden nur primitive Datentypen und BigInteger oder nur BigInteger mein Leben erleichtern und weniger die Umwandlung hin und her?
In dem Fall, dass Sie nur Ganzzahlen, und wollen nur ganzzahlige Ergebnisse (im Feld Nummer Sinn); dann sollten Sie BigInteger statt BigDecimal. Zum durchführen arithmetische Operationen auf BigInteger, müssen Sie BigIntegers, so gibt es nicht viel zu halten, Werte primitiver Typen, es sei denn, Sie sind wirklich etwas anderes mit Ihnen vor der großen Zahl Teil.
InformationsquelleAutor dalawh | 2013-04-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus: http://www.javamex.com/tutorials/math/BigDecimal_BigInteger_performance.shtml
Beachten Sie, dass ein BigDecimal ist im wesentlichen ein wrapper um einen BigInteger, "merkt sich, wo das Dezimaltrennzeichen ist".
Wegen der Art, wie wir verwendet, um mit zahlen umzugehen, als Menschen, die wir haben können, um "ein bisschen mehr darüber nachdenken", wenn das rechnen mit nicht-ganzen zahlen von hand im Vergleich Ganzzahlen (z.B. haben wir vielleicht gelernt haben, die 7-mal-Tabelle auswendig zu beschleunigen, bestimmte Berechnungen, die aber wohl nicht die .7 Zeiten-Tabelle). Aber eine computer-Umsetzung, im Grunde ist es keine Anstrengung mehr zu manipulieren, nicht-ganzen zahlen als ganze zahlen, und so auf die ganzen Methoden auf BigDecimal neigen dazu, führen Sie ebenso zu analogen Methoden BigInteger.
Wie verwenden nur primitive Datentypen und BigInteger oder nur BigInteger mein Leben erleichtern und weniger die Umwandlung hin und her?
Von Ihrer Seite: "im Gegensatz zu addition und Subtraktion, die Zeit, die erforderlich ist zum durchführen einer Multiplikation skaliert exponentiell mit der Anzahl der Ziffern in der multiplicands: oder genauer gesagt, die Multiplikation einer Zahl mit n Ziffern durch eine Zahl mit m Ziffern nimmt in der Reihenfolge der nm-Zeit." Das ist nicht das, was "exponentiell" bedeutet...
InformationsquelleAutor prashant
Wenn Sie entwickeln ein low-latency-Anwendung und jede Millisekunde ankommt, BigDecimal/BigInteger ist nicht für Sie. Neben dieser Tatsache BigDecimal/BigInteger hat keine sichtbaren Auswirkungen.
BigDecimal hat Vorform niedriger als
long
,double
. Die gleichen äpfel zu BigInteger und der entsprechende primitive.InformationsquelleAutor Joban Dhillon
Ich weiß, der Titel deiner Frage states "Performace BigDecimal vs. BigInteger und BigDecimal", sondern eine Frage, die besagt, "Wie über die Verwendung von nur primitive Datentypen und BigInteger oder nur BigInteger zu machen ". Nun, hier ist was ich empfehlen:
Wenn Sie brauchen, Genauigkeit, Präzision und Sie haben große zahlen zu arbeiten wie riesige finanzielle Daten, dann kann es am besten zu verwenden, BigDecimal und BigInteger statt primitive Typen. Einige andere Eigenschaften von BigDecimal und BigInteger sind auch:
Nun zurück zu deiner wichtigsten Frage in Bezug auf Leistung, es ist nicht viel Unterschied in Sachen performance zwischen den beiden. Wenn Sie können, präsentieren Sie Ihre Informationen in BigDecimal verwenden Sie einfach, so dass Sie nicht haben, konvertieren Sie es in BigInteger aber wieder Blick auf das Programm und sehen, ob es sinnvoll ist und nicht nur BigDecimal verwenden die ganze Zeit.
Der wesentliche Unterschied zwischen den BigInteger und BigDecimal ist, dass BigInteger unterstützt eine beliebige Präzision Ganzzahlen und BigDecimal für eine beliebige Präzision fixed-point zahlen.
Sind hier meine Quellen und viel Glück 🙂
New York University
Colorado Universität
InformationsquelleAutor grepit
Wenn Sie besorgt über die Leistung, die mit großen zahlen, ich möchte vermeiden, Java
BigInteger
undBigDecimal
wie die Pest.Beide langsam (sowohl asymptotisch und auf relativ kleine Eingänge) algorithmen für Multiplikation, division und radix conversion. Sie haben keine Möglichkeit, Sie zu ersetzen mit effizienter algorithmen, wenn es sich herausstellt, um einen Engpass, kurz von der Codierung bis Ihre eigenen
BigInteger
-kompatiblen big-zahlen und machen einen großen umgestalten.Sind Sie wahrscheinlich besser dran mit einem Java-wrapper um die GMP-und MPFR wenn Sie den Umgang mit großen zahlen. Die "großen" hier könnten ein paar hundert Ziffern, weil die Dinge, die Java funktioniert beim Aufruf nativer Methoden.
InformationsquelleAutor tmyklebu