Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: momo en 24 de Septiembre 2014, 20:10

Título: Ejercicio CU00670B operator * cannot be applied to int, java.lang.String casting
Publicado por: momo en 24 de Septiembre 2014, 20:10
Citar
El problema que tenemos es que nos salta un mensaje de error “operator * cannot be applied to int, java.lang.String”. ¿Qué interpretación haces de este mensaje de error? ¿Cómo se puede corregir el código para que a través de una conversión de tipos se ejecute el programa?  Puedes comprobar si tu código y respuestas son correctas consultando en los foros aprenderaprogramar.com.

ERROR :

Bad operand types for binary operator '*' first type : int; second type:java.lang.String

Bueno la interpretación a realizar:
Es que el multiplicando es de tipo (int) y el multiplicador es de tipo (String), por lo tanto esa multiplicación no se puede realizar .

Para que la Multiplicación se realice hay que convertir el tipo(String) a cualquiera de los siguiente tipos(int,float,double,long).

En el Ejercicio veremos  la conversión de tipo(String) a (float) utilizando el metodo (valueOf)..

Ejercicio:
Código: [Seleccionar]
import javax.swing.JOptionPane;

public class ejemplo1 {
    public static void main (String[] Args) {
        String entradaUsuario=JOptionPane.showInputDialog ( "Introduzca un número:" );
        float convertir=Float.valueOf(entradaUsuario);
        System.out.println ("El doble del número introducido es: " + 2*convertir);       
                 
    }
}



Título: Re:ENTREGA:CU00670B
Publicado por: Jorge lopez en 24 de Septiembre 2014, 22:28
 Hola momo!

Tanto tu interpretación sobre el error:
"Bad operand types for binary operator '*' first type : int; second type:java.lang.String"
Como el código de tu ejercicio ambos son correctos. Solo tengo un "pequeño" detalle que comentar.

Has declarado como nombre de clase: ejemplo1. Lo correcto seria Ejemplo1, que el nombre de una clase comience con letra mayúscula no es obligatorio pero si es una buena practica de programación, con esto estas respetando un convenio entre programadores que consta de declarar el nombre de una clase comenzando con letra mayúscula.

También te hago un pequeño aporte por si te puede ser util en algún momento. Para realizar la conversion de String a float, también puedes usar el método "parseFloat(String s)" de la clase Float.

En tu ejercicio seria algo asi:
Código: [Seleccionar]
float convertir = Float.parseFloat(entradaUsuario);
Saludos!
Título: Re:ENTREGA:CU00670B
Publicado por: momo en 25 de Septiembre 2014, 00:12
Hola Sniper no me di cuenta de lo del nombre de la clase  :-\  ,en sí tome el código que estaba planteado en el ejercicio y lo que hice fue modificar  a que hiciera la conversión.

Se me paso por alto  corregir el nombre de la clase .

Muchas  Gracias por tu aporte y  comentario amigo  :D
Título: Re:Ejercicio CU00670B operator * cannot be applied to int, java.lang.String casting
Publicado por: @dib_vz en 23 de Enero 2015, 04:25
Como se haria para convertir un String en un int, si es que eso es posible? :-\
Título: Re:Ejercicio CU00670B operator * cannot be applied to int, java.lang.String casting
Publicado por: Mario R. Rancel en 23 de Enero 2015, 08:10
Hola, puedes hacerlo usando parseInt como en este ejemplo:

Código: [Seleccionar]
import javax.swing.JOptionPane;

public class ejemplo1 {
    public static void main (String[] Args) {
        String entradaUsuario=JOptionPane.showInputDialog ( "Introduzca un número:" );
        Integer convertir=Integer.valueOf(entradaUsuario); //Para convertir a integer
        int convertir2 = Integer.parseInt(entradaUsuario); //Para convertir a int
        System.out.println ("El doble del número introducido es: " + 2*convertir2);       
                 
    }
}