No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Curso de Introducci贸n a Java SE

Curso de Introducci贸n a Java SE

Anah铆 Salgado D铆az de la Vega

Anah铆 Salgado D铆az de la Vega

Cast en variables: Estimaci贸n y Exactitud

18/39
Recursos

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

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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, 鈥渦n perrito se parti贸 a la mitad鈥.

CONVERSIONES ENTRE TIPOS

  • NO PERDEMOS INFORMACI脫N
    • De char 鈥> int.
    • De byte 鈥> short 鈥> int 鈥> long
    • De int 鈥> double
    • De float 鈥> double
  • PERDEMOS INFORMACI脫N
    • De int 鈥> float
    • De long 鈥> float
    • De long 鈥> double

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

  • Cast casteo o casting de variable.
  • En la programaci贸n hay situaciones donde se necesita cambiar el tipo de dato. A veces nosotros quisieramos dejar de ver ese n煤mero en decimal que tal que queremos verlo ahora en otro tipo de dato que tal que queremos en un tipo de dato m谩s redondeado como un entero por ejemplo, entones esto depende de que prefiramos, si preferimos Estimaci贸n, estimar algo que no nos importe la cantidad de decimales que hay ah铆, sino que simplemente queremos el dato estimado; o si preferimos Exactitud en este caso nos convendr铆a cambiar un tipo de datos entero a un tipo de dato que sea de tipo double para hacerlo mucho m谩s sencillo.

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 馃槂

![](

Muy 煤til el casteo.

Notes:
Code:

import java.lang.*;

/**
 * CastingVars
 */
public class CastingVars {

    public static void main(String[] args) {
        //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 鈥渕谩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);

    }
}```