Converti doppio in intero in Java

Dato un numero reale doppio. Scrivere un programma Java per convertire il numero doppio indicato in un numero intero (int) in Java.

Esempi:

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

Doppio: Il tipo di dati double è un tipo a virgola mobile IEEE 754 a 64 bit a doppia precisione. La sua gamma di valori è infinita. Il tipo di dati double viene comunemente utilizzato per i valori decimali, proprio come float. Inoltre, il tipo di dati double non deve mai essere utilizzato per valori precisi, come la valuta. Suo il valore predefinito è 0,0 .

 Example:  double d1 = 10.5 

Numero intero: Il tipo di dati Integer o int è un numero intero in complemento a due con segno a 32 bit. Il suo intervallo di valori è compreso tra – 2.147.483.648 (-2^31) e 2.147.483.647 (2^31 -1) (incluso). Il suo valore minimo è – 2.147.483.648 e il valore massimo è 2.147.483.647. Suo il valore predefinito è 0 . Il tipo di dati int viene generalmente utilizzato come tipo di dati predefinito per valori integrali a meno che non vi siano problemi relativi alla memoria.

 Example: int a = 10 

Si avvicina

Esistono numerosi approcci per eseguire la conversione del tipo di dati Double nel tipo di dati Integer (int). Alcuni di essi sono elencati di seguito.

  • Utilizzando TipoCasting
  • Utilizzando Double.intValue() metodo
  • Utilizzando Matematica.round() metodo

Approccio 1: utilizzo TipoCasting

Questa tecnica è molto semplice e intuitiva.

Sintassi:

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

Esempio:

Giava




// 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);> > }> }>

Produzione

Double - 3452.345 Integer - 3452 

Complessità temporale: O(1) poiché vengono utilizzate operazioni costanti.
Spazio ausiliario: O(1) perché non è richiesto spazio aggiuntivo.

Approccio 2: utilizzo del metodo Double.intValue()

Questa tecnica è simile al metodo di typecasting. La differenza principale tra il metodo di typecasting e questo metodo è che il metodo di typecasting è un metodo esplicito e questo metodo è una classe Wrapper Double tronca tutte le cifre dopo il punto decimale.

Sintassi:

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

Esempio:

Giava




// 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);> > }> }>

Produzione:

Double - 3452.345 Double - 3452 

Complessità temporale: O(1) poiché vengono utilizzate operazioni costanti.
Spazio ausiliario: O(1) perché non è richiesto spazio aggiuntivo.

Approccio 3: Utilizzo Matematica.round() metodo

Matematica.round() accetta un valore double e lo converte nel valore long più vicino aggiungendo 0,5 al valore e tagliando i suoi punti decimali. Il valore lungo può quindi essere convertito in un int utilizzando il typecasting.

Sintassi:

long Math.Round(Double doubleValue); 

Esempio:

Giava




// 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);> > }> }>

Produzione

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

Complessità temporale: O(1) poiché vengono utilizzate operazioni costanti.
Spazio ausiliario: O(1) perché non è richiesto spazio aggiuntivo.

Nota: Qui puoi vedere che il metodo Math.round() converte il double in un numero intero arrotondando il numero all'intero più vicino.

Per esempio - 10.6 verrà convertito in 11 utilizzando Math.round() metodo e 1 verrà convertito in 10 utilizzando il typecasting o il metodo Double.intValue() .