Konverter dobbelt til langt i Java

1. Oversigt

I denne vejledning undersøger vi forskellige metoder til at konvertere fra dobbelt til lang i Java.

2. Brug af Type Casting

Lad os kontrollere en ligetil måde at kaste dobbelt til lang ved hjælp af cast-operatøren:

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

Anvendelse af (lang) støbt operatør på en dobbelt værdi 9999.999 resulterer i 9999.

Dette er en indsnævring af primitiv konvertering, fordi vi mister præcision. Når en dobbelt er støbt til en lang, vil resultatet forblive det samme eksklusive decimaltegnet.

3. Brug Double.longValue

Lad os nu udforske Dobbelt indbygget metode longValue at konvertere en dobbelt til en lang:

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

Som vi kan se, anvende longValue metode på en dobbelt værdi 9999.999 giver 9999. Internt det longValue metoden udfører en simpel rollebesætning.

4. Brug Matematik Metoder

Lad os endelig se, hvordan man konverterer en dobbelt til lang ved brug af runde, loft og gulv metoder fra Matematik klasse:

Lad os først kontrollere Matematik. Runde. Dette giver en værdi tættest på argumentet:

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

For det andet Matematik.loft giver den mindste værdi, der er større end eller lig 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);

På den anden side, Matematikgulv gør lige det modsatte af Matematik. Flise. Dette returnerer den største værdi, der er mindre end eller lig 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);

Bemærk, at begge dele Matematik. Flise og Matematik. Runde returnere a dobbelt værdi, men i begge tilfælde svarer den returnerede værdi til en lang værdi.

5. Konklusion

I denne artikel har vi diskuteret forskellige metoder til konvertering dobbelt til lang i Java. Det tilrådes at have en forståelse af, hvordan hver metode opfører sig, før du anvender den til missionskritisk kode.

Den komplette kildekode til denne vejledning er tilgængelig på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found