2016-05-09 19 views
-1

Wie ich verstehe, kann ich die Präzision abstrahieren, indem ich die Number-Schnittstelle verwende, die Integer-, Long- und BigInteger-Implementierungen hat und den Typ, den ich benötige, abhängig vom Bereich meiner Werte anschließe. Ich verstehe, dass der BigInteger nicht allgegenwärtig ist, weil er mehr Speicher benötigt und weniger performant ist. Was sind die Zahlen?Long vs. BigInteger

+1

Warum sagen Sie, dass 'BigDecimal' und' Double' für verschiedene Zwecke verwendet werden? Und was versuchst du zu kontrastieren? – shmosel

+0

'BigInteger' ist in der Tat am besten im Vergleich zu' double'. Aber offen gesagt, jede Art von "Figuren" würde sehr von Ihrer Plattform abhängen. (All das sagte: fast jede Entscheidung darüber, welchen Datentyp Sie verwenden sollten, hängt davon ab, welche Art von Zahlen Sie speichern, nicht Leistungsanforderungen.) –

+3

Und offen gesagt, ist die Vereinheitlichung über "Number" fast nutzlos; Es gibt fast keine nützlichen Operationen, die man mit einer generischen 'Nummer' machen kann. –

Antwort

1

BigDecimal ist ähnlich Doppel, es helfen, Präzision aufrechterhalten und ist für die Anzeige nützlich. Verwenden Sie es nur bei Bedarf, sonst double ist besser für viele Überlegungen (Speicher, Leistung).

Es ist nützlich, zum Beispiel, wenn Sie Geldwerte speichern: Sie wollen die Darstellung behalten, sowie die Zahl richtig runden, wenn Sie Summen (Additionen) machen.

+0

Entschuldigung, ich habe meine Frage –

+0

in Ordnung, also wollen Sie Benchmarks; Ich habe diese nicht, aber ich stimme Louis zu, die kommentierte, dass Ihre Kriterien Ihre Design-Wahl sein sollten, keine Leistungs-Benchmarks. Ich bin mir nicht sicher, dass Number dir sehr hilfreich ist. Wenn Sie es kurz machen wollen, dann fahren Sie einfach mit BigDecimal fort, wenn Ihre Anwendung nicht alle diese großartigen Operationen an den Werten ausführt und nicht Ihre CPU und Ihren Arbeitsspeicher voll auslastet. –