Vergleichen von BigDecimal und int in Java

8

Welches ist der beste Weg, ein BigDecimal und ein int in Java zu vergleichen: das BigDecimal in int umzuwandeln oder int in BigDecimal umzuwandeln?

    
HighBit 18.03.2012, 16:27
quelle

4 Antworten

9

Wenn Sie erwarten, dass der BigDecimal -Wert wirklich groß ist (dh außerhalb des Bereichs von int -Werten, also -2 31 bis 2 31 -1 ) und / oder um Dezimalziffern zu enthalten oder einfach nur sicher zu spielen, sollten Sie int in BigDecimal konvertieren, um Überlauf- / Abbruchfehler zu vermeiden.

Andernfalls, wenn die Leistung ein wirklich großes Problem ist (was selten vorkommt), könnte umgekehrt besser sein.

    
Péter Török 18.03.2012, 16:29
quelle
2

Sie möchten das int in ein BigDecimal konvertieren.

Dies liegt daran, dass Sie BigDecimal nicht immer in einen int konvertieren können; Sie verlieren alle Informationen nach dem Dezimalpunkt, und der Wert von BigDecimal liegt möglicherweise außerhalb des Bereichs von int.

    
Taymon 18.03.2012 16:30
quelle
1

Wenn BigDecimal den Bereich von int erweitert, müssen Sie die int in BigDecimal konvertieren, um sicherzustellen, dass sie trotzdem miteinander verglichen werden können.

    
Sirko 18.03.2012 16:30
quelle
0

Ein Grund, Int nicht in BigDecimal zu konvertieren, ist die Tatsache, dass Sie ein neues Objekt erstellen würden. Deshalb werfen Sie wirklich Müll auf Ihren Heap, um Gleichheit zu erreichen. Primitive Gleichheit wäre auch schneller als die auf dem eigentlichen BigInteger-Objekt.

    
Bober02 18.03.2012 16:30
quelle

Tags und Links