Konvertera dubbel till lång i Java

1. Översikt

I den här handledningen utforskar vi olika metoder för att konvertera från dubbel till lång i Java.

2. Använda typgjutning

Låt oss kolla ett enkelt sätt att kasta dubbelt till långt med hjälp av castoperatören:

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

Att använda den (långa) castoperatören på ett dubbelt värde 9999.999 resulterar i 9999.

Detta är en minskande primitiv konvertering eftersom vi tappar precision. När en dubbel kastas till en lång , förblir resultatet detsamma, exklusive decimal.

3. Använda Double.longValue

Låt oss nu utforska Dubbels inbyggda metod longValue för att konvertera en dubbel till en lång :

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

Som vi kan se, med tillämpning av longValue metoden på en dubbel värde 9999.999 ger 9999. Internt i longValue är metoden att utföra en enkel gjuten .

4. Använda Math Metoder

Slutligen, låt oss se hur man konverterar en dubbel till lång med runda, tak- och golvmetoder från matematikklassen :

Låt oss först kolla Math.round. Detta ger ett värde närmast argumentet:

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

För det andra, matematik. ceil ger det minsta värdet som är större än eller lika med argumentet:

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

Å andra sidan gör Math.floor precis motsatsen till Math.ceil. Detta returnerar det största värdet som är mindre än eller lika med argumentet:

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

Observera att både Math.ceil och Math.round returnerar ett dubbelt värde, men i båda fallen motsvarar det returnerade värdet ett långt värde.

5. Sammanfattning

I den här artikeln har vi diskuterat olika metoder för att konvertera dubbel till lång i Java. Det är tillrådligt att ha en förståelse för hur varje metod beter sig innan du applicerar den på uppdragskritisk kod.

Den kompletta källkoden för denna handledning finns tillgänglig på GitHub.