elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Problema con conversión de tipo long a int
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con conversión de tipo long a int  (Leído 2,935 veces)
fran10

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Problema con conversión de tipo long a int
« en: 21 Enero 2015, 02:10 am »

Buenas noches.

Tengo una duda con este ejercicio y es que no entiendo mucho de java y no encuentro el posible error

El enunciado es:

P1. Escriba un programa que pida al usuario dos números enteros. Una vez obtenidos los dos números, el programa mostrará al
usuario una serie de opciones numeradas (un menú), y esperará que el usuario teclee la opción deseada. Entre las opciones del
menú se le deberán ofrecer al usuario las siguientes:
1. Dividir los números.
2. Multiplicar los números.
3. Sumar los números.
4. Restar los números.

Código
  1. public static void main(String[] args) {
  2.        // TODO code application logic here
  3.        double a,b;
  4.        System.out.println("Introduce el primer numero");
  5.        a = (double) IO.readNumber();
  6.        System.out.println("Introduce el segundo numero");
  7.        b = (double) IO.readNumber();
  8.  
  9.        int opcion;
  10.        double division, multi, suma, resta;
  11.        System.out.println("Introduzca 1 para dividir, 2 para multiplicar, 3 para sumar y 4 para restar");
  12.        opcion = IO.readNumber();
  13.        switch(opcion){
  14.  
  15.            case 1:
  16.            {
  17.                double division= double a/b;
  18.                System.out.println("el resultado de la division es" +division);
  19.                break;
  20.            }
  21.            case 2:
  22.            {
  23.                double multiplicacion= double a*b;
  24.                System.out.println("el resultado de la division es" +multiplicacion);
  25.                break;
  26.            }
  27.            case 3:
  28.            {
  29.                double suma= double a+b;
  30.                System.out.println("el resultado de la suma es" +suma);
  31.                break;
  32.            }
  33.            case 4:
  34.            {
  35.                double resta= double a-b;
  36.                System.out.println("el resultado de la resta es" +resta);
  37.                break;
  38.            }
  39.            default:System.out.println("No has introducido una opcion correcta");
  40.        }
  41.    }
  42.  
  43. }

Al realizar el ejercicio me da el siguiente error:
"Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - incompatible types: possible lossy conversion from double to int"

Muchas gracias


En línea

Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Problema con conversión de tipo long a int
« Respuesta #1 en: 21 Enero 2015, 02:40 am »

Primero declaras variables como division, multiplicacion, suma y resta pero nunca las utilizas. Dentro del switch estás creando éstas mismas variables. IO, supongo que es una clase que la has creado y has implementado métodos estáticos como el que has usado readNumber(). Yo lo he hecho con el clásico Scanner porque no sé si tu método estará bien programado.


Código
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. class HelloWorld
  6. {
  7.    public static void main(String[] args) {
  8.  
  9.           Scanner t = new Scanner(System.in);
  10.  
  11.           System.out.println("Introduce el primer numero");
  12.           double a = t.nextDouble();
  13.           System.out.println("Introduce el segundo numero");
  14.           double b =t.nextDouble();
  15.  
  16.           System.out.println("Introduzca 1 para dividir, 2 para multiplicar, 3 para sumar y 4 para restar");
  17.           int opcion = t.nextInt();
  18.  
  19.           switch(opcion){
  20.  
  21.               case 1:
  22.               {
  23.                   double division= (double) a/b;
  24.                   System.out.println("el resultado de la division es " +division);
  25.                   break;
  26.               }
  27.               case 2:
  28.               {
  29.                   double multiplicacion= a*b;
  30.                   System.out.println("el resultado de la division es " +multiplicacion);
  31.                   break;
  32.               }
  33.               case 3:
  34.               {
  35.                   double suma= a+b;
  36.                   System.out.println("el resultado de la suma es " +suma);
  37.                   break;
  38.               }
  39.               case 4:
  40.               {
  41.                   double resta= a-b;
  42.                   System.out.println("el resultado de la resta es " +resta);
  43.                   break;
  44.               }
  45.               default: System.out.println("No has introducido una opcion correcta");
  46.           }
  47.       }
  48.  
  49. }


En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
fran10

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Problema con conversión de tipo long a int
« Respuesta #2 en: 21 Enero 2015, 03:05 am »

Buenas amigo, yo es que se algo de lenguaje c a nivel básico y por eso lo hice así.

Entonces si bien he entendido, los números "a"y "b" tampoco debo incializarlos ¿verdad?

IO es una clase que nos dan en la escuela que la debemos usar según nos han dicho para cuando tengamos que introducir un valor por teclado poder leerlo.

Una dudilla que me surge al ver su programa, ¿por qué en la división introduce (double)a/b y en los demás como la multiplicación, suma y resta no es necesario?

Muchas gracias  :)
En línea

Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Problema con conversión de tipo long a int
« Respuesta #3 en: 21 Enero 2015, 03:20 am »

Sólo por compatibilidad, vayan a cambiar a y b a int, por lo que la división solo devolvería la parte entera. Si ambos operandos son reales como en este caso, no es necesario hacer el casting.
En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con conversión de tipo de variable [c++]
Programación C/C++
xkiz ™ 4 2,955 Último mensaje 6 Abril 2012, 23:28 pm
por xkiz ™
[C++] Conversión tipo predefinido <-> tipo definido por usuario
Programación C/C++
dopin 2 2,544 Último mensaje 22 Agosto 2012, 15:04 pm
por dopin
duda: funcionamiento operador unario de conversion de tipo
Programación C/C++
elkiy 5 2,660 Último mensaje 5 Octubre 2012, 17:48 pm
por elkiy
Arrays de chars to long long
Programación C/C++
Xedrox 0 1,378 Último mensaje 24 Diciembre 2012, 01:03 am
por Xedrox
Conversión de tipo en C++
Programación General
donfumero 1 1,641 Último mensaje 11 Abril 2013, 00:16 am
por donfumero
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines