Sobes.tech
Junior — Middle

Was sind die Unterschiede zwischen den Klassen BigDecimal und Double in Java und in welchen Fällen ist es vorzuziehen, jede von ihnen zu verwenden?

sobes.tech KI

Antwort von AI

Die Klasse Double in Java stellt einen primitiven Gleitkommatyp mit doppelter Genauigkeit (64 Bit) dar. Sie ist praktisch für schnelle arithmetische Operationen mit Gleitkommazahlen, aber aufgrund der Eigenschaften der binären Darstellung speichert sie Dezimalzahlen nicht immer genau, was zu Rundungsfehlern führen kann.

BigDecimal ist eine Klasse zur Arbeit mit Dezimalzahlen beliebiger Genauigkeit. Sie speichert Zahlen als String oder Ziffernarray, was Rundungsfehler vermeidet und Genauigkeit bei Finanz- und anderen kritischen Berechnungen gewährleistet.

Wann verwenden:

  • Verwenden Sie Double, wenn Geschwindigkeit wichtig ist und kleine Ungenauigkeiten akzeptabel sind (z.B. bei wissenschaftlichen Berechnungen, Grafiken).
  • Verwenden Sie BigDecimal für Finanzberechnungen, bei denen Genauigkeit und korrektes Runden entscheidend sind (z.B. bei Geldtransaktionen).

Beispiel mit BigDecimal:

import java.math.BigDecimal;

BigDecimal price = new BigDecimal("19.99");
BigDecimal quantity = new BigDecimal("3");
BigDecimal total = price.multiply(quantity);
System.out.println("Total: " + total); // Total: 59.97

Beispiel mit Double:

double price = 19.99;
double quantity = 3;
double total = price * quantity;
System.out.println("Total: " + total); // Kann 59.96999999999999 sein