logo

Converteer dubbel naar geheel getal in Java

Gegeven een dubbel reëel getal. Schrijf een Java-programma om het gegeven dubbele getal om te zetten in een geheel getal (int) in Java.

Voorbeelden:



 Input: double = 3452.234 Output: 3452 Input: double = 98.23 Output: 98>

Dubbele: Het dubbele gegevenstype is een 64-bits IEEE 754 drijvende komma met dubbele precisie. Het waardebereik is eindeloos. Het dubbele gegevenstype wordt vaak gebruikt voor decimale waarden, net als float. Het dubbele gegevenstype mag ook nooit worden gebruikt voor precieze waarden, zoals valuta. Zijn standaardwaarde is 0,0 .

 Example:  double d1 = 10.5>

Geheel getal: Het gegevenstype Integer of int is een 32-bits geheel getal met twee complementaire tekens. Het waardebereik ligt tussen – 2.147.483.648 (-2^31) tot 2.147.483.647 (2^31 -1) (inclusief). De minimumwaarde is – 2.147.483.648 en de maximumwaarde is 2.147.483.647. Zijn standaardwaarde is 0 . Het gegevenstype int wordt over het algemeen gebruikt als standaardgegevenstype voor integrale waarden, tenzij er geen probleem is met het geheugen.

 Example: int a = 10>

Benaderingen

Er zijn talloze benaderingen om de conversie van Double datatype naar Integer (int) datatype uit te voeren. Een aantal daarvan staan ​​hieronder opgesomd.



  • Gebruik makend van TypeCasten
  • Gebruik makend van Dubbele.intWaarde() methode
  • Gebruik makend van Wiskunde.round() methode

Benadering 1: Gebruiken TypeCasten

Deze techniek is zeer eenvoudig en gebruiksvriendelijk.

Syntaxis:

double data = 3452.345 int value = (int)data;>

Voorbeeld:



Java




// Java program to convert Double to> // int using Typecasting> public> class> GFG {> >// main method> >public> static> void> main(String args[])> >{> >// Get the double value> >double> data =>3452.345>;> >System.out.println(>'Double - '> + data);> >// convert into int> >int> value = (>int>)data;> >// print the int value> >System.out.println(>'Integer - '> + value);> >}> }>

>

>

Uitvoer

Double - 3452.345 Integer - 3452>

Tijdcomplexiteit: O(1) omdat constante bewerkingen worden gebruikt.
Hulpruimte: O(1) omdat er geen extra ruimte nodig is.

Benadering 2: Gebruik de Double.intValue()-methode

Deze techniek is vergelijkbaar met de typecasting-methode. Het belangrijkste verschil tussen de typecasting-methode en deze methode is dat de typecasting-methode een expliciete methode is, en deze methode is een Wrapper-klasse. Dubbel kapt alle cijfers af na de komma.

Syntaxis:

double data = 3452.345 Double newData = new Double(data); int value = newData.intValue();>

Voorbeeld:

abstracte klasse

Java




// Java program to convert Double to int> // using Double.intValue()> public> class> GFG {> >// main method> >public> static> void> main(String args[])> >{> >// Get the double value> >Double data =>3452.345>;> >System.out.println(>'Double - '> + data);> >// Create a wrapper around> >// the double value> >Double newData =>new> Double(data);> >// convert into int> >int> value = newData.intValue();> >// print the int value> >System.out.println(>'Double - '> + value);> >}> }>

>

>

Uitgang:

Double - 3452.345 Double - 3452>

Tijdcomplexiteit: O(1) omdat constante bewerkingen worden gebruikt.
Hulpruimte: O(1) omdat er geen extra ruimte nodig is.

Aanpak 3: Gebruiken Wiskunde.round() methode

Math.round() accepteert een dubbele waarde en converteert deze naar de dichtstbijzijnde lange waarde door 0,5 bij de waarde op te tellen en de decimalen af ​​te snijden. De lange waarde kan vervolgens worden geconverteerd naar een int met behulp van typecasting.

Syntaxis:

long Math.Round(Double doubleValue);>

Voorbeeld:

Java




// Java program to convert Double to int> // using Math.round()> public> class> GFG {> >// main method> >public> static> void> main(String args[])> >{> >// Get the double value> >double> data1 =>3452.345>;> >System.out.println(>'Double : '> + data1);> >// convert into int> >int> value1 = (>int>)Math.round(data1);> >// print the int value> >System.out.println(>'Integer : '> + value1);> > >double> data2 =>3452.765>;> >System.out.println(>' Double : '> + data2);> >// convert into int> >int> value2 = (>int>)Math.round(data2);> >// print the int value> >System.out.println(>'Integer : '> + value2);> >}> }>

>

>

Uitvoer

Double : 3452.345 Integer : 3452 Double : 3452.765 Integer : 3453>

Tijdcomplexiteit: O(1) omdat constante bewerkingen worden gebruikt.
Hulpruimte: O(1) omdat er geen extra ruimte nodig is.

Opmerking: Hier kunt u zien dat de methode Math.round() het dubbele omzet in een geheel getal door het getal af te ronden naar het dichtstbijzijnde gehele getal.

Bijvoorbeeld - 10.6 zal worden omgezet naar 11 met behulp van Math.round() methode en zal worden omgezet naar 10 met behulp van typecasting of Double.intValue() methode .