Dado un número real Doble. Escriba un programa Java para convertir el número doble dado en un Long (largo) en Java.
Ejemplos:
Input: double = 2545.241 Output: 2545 Input: double = 21.54 Output: 21
Tipo de datos doble: el tipo de datos doble es un punto flotante IEEE 754 de 64 bits de doble precisión. Su rango de valor es infinito. Se usa comúnmente para valores decimales. Nunca usó el tipo de datos doble para almacenar valores precisos, como moneda. Su valor predeterminado es 0.0d .
Example: double double1 = 111.5d
Tipo de datos largos: el tipo de datos largos es un entero de complemento a dos de 64 bits. Representa una longitud de 64 bits sin signo con un valor mínimo de 0 y un valor máximo de 2 64 -1. La clase long también contiene métodos para realizar operaciones aritméticas en long sin signo. El valor predeterminado es 0 .
Example: long long1 = 111
Puede haber muchos enfoques para convertir datos dobles en tipos de datos largos. Algunos de ellos se enumeran a continuación:
- Uso de encasillamiento.
- Usando el método Double.longValue() .
- Usando el método Math.round() .
- Usando Long.parseLong() junto con métodos String.
Enfoque 1: uso de encasillamiento
Este es el método más simple para convertir el tipo de datos doble a largo en Java.
Sintaxis:
double doubleVar = 3452.345 long longVar = (long)doubleVar;
Ejemplo:
Java
// Java program to convert double value to // long using TypeCasting method class GFG { public static void main(String[] args) { double doubleValue = 4512.412; System.out.println("Double Value: " + doubleValue); // TypeCasting to convert double to long long longValue = (long)doubleValue; System.out.println("Long Value: " + longValue); } }
Double Value: 4512.412 Long Value: 4512
Enfoque 2: uso del método Double.longValue()
Este enfoque es similar al enfoque anterior. Aquí, la clase Double contiene un método longValue(), que elimina todos los dígitos después del decimal de un valor doble.
Sintaxis:
double doubleValue = 4512.412; Double newDouble = new Double(doubleValue); long longValue = newDouble.longValue();
Ejemplo:
Java
// Java program to convert double value to // long using Double.longValue() method class GFG { public static void main(String[] args) { double doubleValue = 4512.412; System.out.println("Double Value: " + doubleValue); // Create wrapper around the double value Double newDouble = new Double(doubleValue); // Convert double to long long longValue = newDouble.longValue(); System.out.println("Long Value: " + longValue); } }
Producción:
Double Value: 4512.412 Long Value: 4512
Enfoque 3: uso del método Math.round()
Math.round() acepta un valor doble y lo convierte en el valor largo más cercano al agregar 0.5 y eliminar sus puntos decimales.
Sintaxis:
long Math.round(Double double1);
Ejemplo:
Java
// Java program to convert Double to long // using Math.round() public class GFG { public static void main(String args[]) { // Get the double value double double1 = 99.4; System.out.println("Double Value 1: " + double1); // convert double into long long long1 = (long)Math.round(double1); // print the long value System.out.println("Long Value 1: " + long1); double double2 = 99.6; System.out.println("Double Value 2: " + double2); // convert double into long long long2 = (long)Math.round(double2); // print the long value System.out.println("Long Value 2: " + long2); } }
Double Value 1: 99.4 Long Value 1: 99 Double Value 2: 99.6 Long Value 2: 100
Nota: En el ejemplo anterior, la función Math.round() redondea el valor doble al valor largo más cercano. Por ejemplo, 99,4 se redondea a 99 mientras que 99,6 se redondea a 100.
Enfoque 4: uso de Long.parseLong() junto con métodos de string
Podemos analizar una string en un largo usando el método Long.parseLong(). Entonces, primero podemos convertir el valor doble dado en una string, luego verificar el decimal en la string. Si está presente el decimal, recorte la string de lo contrario, déjela como está y luego convierta la string a un valor largo.
Sintaxis:
long longValue = Long.parseLong(string);
Ejemplo:
Java
// Java program to convert double value to // long using Long.parseLong() method class GFG { public static void main(String[] args) { double doubleValue = 4512.412; System.out.println("Double Value: " + doubleValue); // Convert double to string String str = String.valueOf(doubleValue); // Get the index of decimal (.) in the string int index = str.indexOf('.'); // Trim the string if needed str = str.substring(0, index == -1 ? str.length() : index); // Convert the string to long long longValue = Long.parseLong(str); // print long Value System.out.println("Long Value: " + longValue); } }
Double Value: 4512.412 Long Value: 4512