Konvertieren Sie Double in Long in Java

1. Übersicht

In diesem Tutorial werden verschiedene Methoden zum Konvertieren von Double in Long in Java untersucht.

2. Verwenden von Type Casting

Lassen Sie uns einen einfachen Weg prüfen, um das Double mit dem Cast-Operator zu lang zu machen :

Assert.assertEquals(9999, (long) 9999.999);

Das Anwenden des ( Long- ) Cast-Operators auf einen doppelten Wert 9999.999 führt zu 9999.

Dies ist eine sich verengende primitive Konvertierung, da wir an Präzision verlieren. Wenn ein Double in ein Long umgewandelt wird, bleibt das Ergebnis ohne Dezimalpunkt gleich.

3. Verwenden von Double.longValue

Lassen Sie uns nun die in Double integrierte Methode longValue untersuchen , um ein Double in ein Long umzuwandeln :

Assert.assertEquals(9999, Double.valueOf(9999.999).longValue());

Wie wir sehen können, ergibt die Anwendung der longValue- Methode auf einen doppelten Wert 9999.999 9999. Intern führt die longValue- Methode eine einfache Umwandlung durch .

4. Verwenden von mathematischen Methoden

Lassen Sie uns abschließend sehen, wie Sie ein Double mit Long-, Ceil- und Floor- Methoden aus der Math- Klasse in Long umwandeln :

Lassen Sie uns zuerst Math.round überprüfen . Dies ergibt einen Wert, der dem Argument am nächsten kommt:

Assert.assertEquals(9999, Math.round(9999.0)); Assert.assertEquals(9999, Math.round(9999.444)); Assert.assertEquals(10000, Math.round(9999.999));

Zweitens Math. Ceil ergibt den kleinsten Wert, der größer oder gleich dem Argument ist:

Assert.assertEquals(9999, Math.ceil(9999.0), 0); Assert.assertEquals(10000, Math.ceil(9999.444), 0); Assert.assertEquals(10000, Math.ceil(9999.999), 0);

Auf der anderen Seite macht Math.floor genau das Gegenteil von Math.ceil. Dies gibt den größten Wert zurück, der kleiner oder gleich dem Argument ist:

Assert.assertEquals(9999, Math.floor(9999.0), 0); Assert.assertEquals(9999, Math.floor(9999.444), 0); Assert.assertEquals(9999, Math.floor(9999.999), 0);

Beachten Sie, dass sowohl Math.ceil als auch Math.round einen doppelten Wert zurückgeben. In beiden Fällen entspricht der zurückgegebene Wert jedoch einem langen Wert.

5. Schlussfolgerung

In diesem Artikel haben wir verschiedene Methoden zum Konvertieren von Double in Long in Java erläutert . Es ist ratsam, sich mit dem Verhalten der einzelnen Methoden vertraut zu machen, bevor Sie sie auf unternehmenskritischen Code anwenden.

Der vollständige Quellcode für dieses Tutorial ist auf GitHub verfügbar.