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() .