Converteer Double naar Long in Java

1. Overzicht

In deze zelfstudie verkennen we verschillende methoden om van dubbele naar lang in Java.

2. Type Casting gebruiken

Laten we eens kijken naar een eenvoudige manier om het dubbele naar lang met behulp van de cast-operator:

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

Het toepassen van de (lang) cast-operator op een dubbele waarde 9999.999 resulteert in 9999.

Dit is een vernauwende primitieve conversie omdat we aan precisie inboeten. Wanneer een dubbele is gegoten in een langblijft het resultaat hetzelfde, exclusief de komma.

3. Met behulp van Double.longValue

Laten we nu eens kijken Dubbel ingebouwde methode longValue om een dubbele naar een lang:

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

Zoals we kunnen zien, is het toepassen van de longValue methode op een dubbele waarde 9999,999 geeft 9999. Intern, de longValue methode is het uitvoeren van een eenvoudige cast.

4. Met behulp van Wiskunde Methoden

Laten we tot slot kijken hoe we een dubbele naar lang gebruik makend van rond, plafond en vloer methoden uit de Wiskunde klasse:

Laten we eerst kijken Wiskunde. Rond. Dit levert een waarde op die het dichtst bij het argument ligt:

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

Ten tweede, Wiskunde.plafond levert de kleinste waarde op die groter is dan of gelijk is aan het argument:

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

Aan de andere kant, Math.floor doet precies het tegenovergestelde van Math.ceil. Dit retourneert de grootste waarde die kleiner is dan of gelijk is aan het argument:

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

Merk op dat beide Math.ceil en Math.round retourneer een dubbele waarde, maar in beide gevallen is de geretourneerde waarde gelijk aan a lang waarde.

5. Conclusie

In dit artikel hebben we verschillende methoden besproken om te converteren dubbele naar lang in Java. Het is raadzaam om te begrijpen hoe elke methode zich gedraagt ​​voordat u deze toepast op missiekritieke code.

De volledige broncode voor deze tutorial is beschikbaar op GitHub.