cuando conviertes un dato (doublé) en un dato (int) cada 2 meses un perrito se pierde en el limbo, jajaja
Conocer a Java como lenguaje de programación
¿Qué es Java?
Versiones de Java y JDK
Las herramientas más usadas de Java
Creando un entorno de desarrollo en Java en Windows
Creando un entorno de desarrollo en Java en Mac
Creando un entorno de desarrollo en Java en Linux
Escribe tu primer Hola Mundo en Java
Etapas de la programación en Java
La JShell de Java
Trabajar con Variables en Java
Variables en Java
Actualizando variables
Convención de Nombres en Java
Técnica de Naming: Camel Case
Tipos de datos numéricos
Tipos de datos char y boolean
Operadores de Asignación, Incremento y Decremento
Operaciones matemáticas
Cast en variables: Estimación y Exactitud
Casteo entre tipos de datos
Archivos .JAR
¡A practicar!
Aplicar condicionales en Java
Sentencia if
Alcance de las variables y Sentencia ELSE
Operadores Lógicos y Expresiones booleanas
Sentencia Switch
Escribir funciones en Java
¿Para qué sirven las funciones?
Implementa Funciones en Java
Java Docs
Javadoc en funciones
Tags Java Docs
Analizar e implementar Ciclos en Java
Bucle do While
Operador Ternario y Bucle While
Bucle For
Break, Continue y Return
Arrays
Declarando Arreglos
Indices y búsqueda de elementos en Arrays
Ciclos For anidados
Continua con el Curso de Programación Orientada a Objetos en Java
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
En la programación hay situaciones donde necesitamos cambiar el tipo de dato de nuestras variables, esto lo conocemos como Cast.
Estimación:
double monthlyDogs = dogsQuantity / 12.0;
// monthlyDogs: 2.5 (pero no es posible, ¡no rescatamos medio perrito!)
int estimatedMonthlyDogs = (int) monthlyDogs;
// estimatedMonthlyDogs: 2
// Recuerda que el casteo no redondea, solo quita los decimales:
Math.sqrt(3) // 1.7320508075688772
(int) Math.sqrt(3) // 1
Exactitud:
int a = 30;
int b = 12;
a / b // 2
(double) a / b // 2.5
Aportes 75
Preguntas 13
cuando conviertes un dato (doublé) en un dato (int) cada 2 meses un perrito se pierde en el limbo, jajaja
Overflow y Underflow
Algo muy importante a considerar al realizar un casting entre variables es que puede alterarse el valor de la misma si excede el máximo o mínimo soportado por el tipo de dato a convertir.
Por ejemplo:
short y = (short)1921222; //Almacena 20678
El valor 1921222 es demasiado grande para almacenarse como un short, por lo que se produce un desbordamiento (overflow) numérico y se convierte en 20678.
El overflow es cuando un numero es tan grande que ya no cabe dentro del tipo de dato, por lo que Java lo ajusta al siguiente valor mas bajo y cuenta desde allí.
El lado cruel de java, “un perrito se partió a la mitad”.
CONVERSIONES ENTRE TIPOS
El casting no aproxima o redondea, solo ignora algunos números para tener el valor estimado, en caso de cambiar a tipo int.
Gracias a la primera mitad del curso, he sido el que ha sacado mayor nota en el examen de mi u xD. Gracias Platzi
Te comparto este artículo con más ejemplos de casting en Java. 💚
// casteo de Variables
// cambio de double a entero, elimina la parte decimal del numero
double d = 86.69;
int i = (int) d;
System.out.println("EL VALOR DE D ES : "+ d);
System.out.println("EL VALOR DE I ES : "+ i);
//Ubicar 30 perritos al año, deseo saber cuantos perritos ubiqué al mes
double monthlyDogs = 30/12;
int estimatedMonthlyDogs = (int ) monthlyDogs;
System.out.println("EL NUMERO ESTIMADO DE PERRITOS UBICADOS ES "+estimatedMonthlyDogs);
// Exactitud
int a = 30;
int b = 12;
System.out.println("EL NUMERO EXACTO DE PERRTIOS AL MES ES: "+((double) (a/b)));
Programar Java en VSC es exquisito, asiste demasiado bien como Typescript
Super!!
ideal para examen donde se den enteros y pedir resultados con decimales
El casting es un procedimiento para transformar una variable primitiva de un tipo a otro, o transformar un objeto de una clase a otra clase siempre y cuando haya una relación de herencia entre ambas
Porque la virtual machine asume que la division de dos enteros que generan un double y lo almacena en una variable double lo guarda entero. No deberia respetar el resultado porque se esta almacenando en una variable double.
😮 Nos podemos encontrar con casting implícitos y explícitos para manipular datos.
Genial 😄
Interesante a la hora de hacer calculo
public class Casting {
public static void main(String[] args) {
//En un año ubico 30 perritos, ¿Cuántos perritos al mes?
double monthlyDogs = (30.0 / 12.0);
System.out.println("El numero de perritos mensuales es: "+monthlyDogs);
//Estimación
int estimatedMonthlyDogs = (int) monthlyDogs;
System.out.println("La estimancion de perritos rescatados mensualmente es: "+estimatedMonthlyDogs);
//Exactitud
int a = 30, b = 12;
System.out.println("Exactitud de perritos mensuales: "+(a/b));
}
}
la verdadera pregunta es, con java podremos saber a donde fue ubicado esa mitad de perrito? jajajaj
Este sería mi código de la clase:
Como siempre mi código al final de cada clase, ahora empece a agregar comentarios en el print para darme una mejor idea de lo que estoy haciendo, además cambié los perros por gatos hahaha:
Es igual a lo que en JavaScript se conoce como Coersion Explicita. Alguien ilumineme si estoy mal.
Para eñ casteo de tipo explicito que es el de la clase solo se puede lograr cuando el tipo de dato destino tenga un rango de valores mas pequeño o igual que el tipo de dato origen, ejemplo:
Para el casteo de datos numericos existe un casteo implicito que no requiere de codigo extra, solo asignarlo. Aqupi una tabla de ese tipo de casteo implicito
wao es muy buen explicando me encanta la clase de java xd
Corazon si amas los perritus fiu fiu
✅
Yo lo que entiendo, es que la parte decimal se mantiene en memoria hasta que se cierra el programa que se esta codificando.
Aunque a mi si me gusta mas tener algo exacto que algo estimado.
Visto en clase
El cast es un cambio de tipo de variable. Se aplica usando paréntesis al nuevo tipo de dato seguido de la variable a modificar.
__ Cast de variables__ 🧮️
Se le conoce como cast cuando necesitas cambiar el tipo de variable a otro tipo de dato . Un cast lo puedes identificar de la siguiente manera:
double d = 86.5;
int i = (int) d; // Cast de double a entero da estimación
int j = (double) i; // Cast de entero a double da exactitud
diablos solo me quedo la cabeza del perro jajaja
public class Casting {
public static void main(String[] args) {
// En un ano ubicar a 30 perritos
// Cuantos perritos ubique al mes
double monthyDog = (30.0 / 2.0);
// Estimacion
int estimaredMonthyDogs = (int) monthyDog;
System.out.println(estimaredMonthyDogs);
// Explicacion: Cuando queremos tener un numero entero con estimacion teniendo decimales
// Es recomendable utilizar el int para casterar el valor, para tener un valor exacto
// Ejemplo de casting
// Con double: double numero = 1.23232323232;
// Con casting: int numero_two = (int) numero;
// Resultado: 1
// NO redondea numeros, sino que quita los puntos decimales para dejar el numero con estimacion
// Exactitud
int a = 30;
int b = 12;
System.out.println((double) a/b);
// Si queremos saber el valor exacto de una poneracion es recomendable utilizar double para
// obtener resultado con decimales
}
}
Excelente curso
¿Solo quita los puntos decimales?
Es usual el uso de cast en las variables?
Excelente curso! otro tema más que la U no me enseñó jajaja
Chevere!!! Es la mejor…
Wow esto es loco 🥴
Sabia convertir el tipo de dato, pero no sabia que se llamaba Casting. En verdad se aprende mucho con la profe Anahí.
codigo de la clase
< double cantPlayMonth= 35.0/12.0;
System.out.println(cantPlayMonth);
System.out.println((int) cantPlayMonth);
//Exacto
int x=40;
int y= 7;
System.out.println((double) x/y);>
El cast al ocuparlo adecuadamente visualiza mejor ciertos resultados.
jajajajajaaja se parte el perrito
y por qui van los perritos XD
//En un año me dedique a ubicar 30perritos a su hogar
//cuantos perritos ubique al mes
double monthlyDogs = 30.0/12.0;
System.out.println(monthlyDogs);
//ESTIMACION
int estimatedMonthlyDogs = (int) monthlyDogs;
System.out.println(estimatedMonthlyDogs);
// Exactitud
int a = 30;
int b = 12;
System.out.println((double) a/b);
}
JAVA SE: Cast en variables: Estimación y Exactitud
Super gracias 😃
Lo que hacemos con monthlyDogs (que es del tipo double) es castearlo en entero (truncando la parte decimal) y una vez hecho esto lo asignamos a la variable estimateMonthlyDogs
Cuando tienes un tipo de dato y lo quieres convertir a otro, de double a int o int a short
int newVar = (int)2.00034;
También puedo hacer esto:
System.out.println((int)monthlyDogs);
es mejor crear una variable con double ? cuales son las recomendaciones
public class Casting {
public static void main(String[] args) {
double monthlyDogs = 30.0/12.0;
System.out.println(monthlyDogs);
int estimatedMonthlyDogs = (int) monthlyDogs;
System.out.println(estimatedMonthlyDogs);
}
}
Muy buena clase sobre el casting, es muy util a la hora de la precisión y cuando requieres algún dato mas entero
Muy buena clase, no tenía idea del casting y lo sencillo que es aplicarlo.
Excelente curso
muy útil del casting
Genial, no lo sabia.
Excelente clase no conocía el casting en Java, lo que normalmente hacía para obtener los resultados enteros cuando se usaban decimales era utilizar Math.round(), con el casting no solo podre tener un valor con una mejor estimación si no que también cambiare el tipo variable.
me parece genial 😃
 {
//I relocated 30 dogs in a year
//how many dogs did I relocate per month?
//answer: 30/12
System.out.printf("\n----Without-Precision-Example----\n\n");
double monthlyDogs = 30.0/12.0;
System.out.println(monthlyDogs);
//out: 2.5
//but since I don't care about precision, I want to have it rounded
int estimatedMonthlyDogs = (int) monthlyDogs; //casting variables ;)
System.out.println(estimatedMonthlyDogs);
//other example
System.out.println((int) monthlyDogs);
//exactitude example
System.out.printf("-----Precision-Example-----\n\n");
int a = 30;
int b = 12;
System.out.println((double) a/b);
}
}
Output:
----Without-Precision-Example----
2.5
2
2
-----Precision-Example-----
2.5
public class Casting
{
public static void main(String[] args)
{
//en un año ibique a 30 perros
// cuantos perritos fueron al mes
double dogs = 30.0/12.0;
System.out.println(dogs);
//estimacion
int estimatedDogs = (int)dogs; //redondea hacia abajo
System.out.println("dato casteable redondeo: " + estimatedDogs);
//exactitud
int a =30;
int b =12;
System.out.println(a/b); // al ser numeros enteros devuelve un valor entero
System.out.println("dato casteable-exactitud: " + (double) a/b); //castea a un numero entero a un numero en decimales
}
}
Todo clarísimo. Gracias
public class Casting {
public static void main(String[] args) {
double lapizes = 2.5;
System.out.println(lapizes);
lapizes = (int) lapizes;
System.out.println(lapizes);
}
}
q interesante esto del casting we :v
Pésima publicidad para la organización. Claramente usaría Math.ceil(monthlyDogs);
Así parece que salvé a 6 perros más
Lo bueno de hacer cast en variables es que nos quedamos con el dato original y si estamos analizando las variables (por ejemplo para elaborar gráficos y ver el proceso) la información no se pierde. Para un usuario común al que no le interesa saber los decimales le creamos otra variable. Es decir, tenemos una variable útil y una “más linda”
Es una buena estrategia para convertir los tipos de datos, no sabía que se le conocía como Casting!
Cast es cuando asigna un valor de un tipo de datos primitivo a otro tipo.
genial
El lado oscuro de java… PARTIR PERRITOS
public class Casting {
public static void main(String[] args) {
//en un año se ubican 30 perritos
//cuantos pertritos se ubicaron por mes?
double monthlyDogs = 30.0 / 12.0;
System.out.println(monthlyDogs);
//estimacion
int estimatedMonthlyDogs = (int) monthlyDogs;
System.out.println(estimatedMonthlyDogs);
//exactitud
int a = 30;
int b = 12;
// en este caso se realiza el cast de int a double para tener una mayor precision.
System.out.println((double) a/b);
}
}```
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.