Foro de elhacker.net

Programación => Java => Mensaje iniciado por: ChuiDui en 6 Julio 2016, 19:58 pm



Título: Duda con un Problema en Java
Publicado por: ChuiDui en 6 Julio 2016, 19:58 pm
Hola, soy nuevo en el foro y tengo una pequeña duda, lo que pasa es que intentando resolver un problema, en el que me pedian ingresar una cantidad de elementos a procesar, para luego especificar la longitud de los elementos, los cuales no debian sobrepasarse de 1.30 ni ser menores a 1.20 y aqui el problema, el programa me deja ingresar la cantidad de elementos pero siempre he tenido problemas con los elementos float, al ingresar enteros no hay problema pero ingreso por poner un ejemplo un 1.22 y da error y si por algun motivo ingreso un numero mayor o menor o cualquier float, me sigue dando el mismo error.
Bueno dejo de lado tanta introduccion y les muestro el codigo fuente y mas abajo el error que me aparece al ejecutar el programa:


package If;
import java.util.Scanner;

public class while_if {
   public static void main(String[]ar){
      Scanner teclado_1=new Scanner(System.in);
      int x;
      int cantidad;
      int n;
      float largo;
      x=1;
      cantidad=0;
      System.out.println("Ingrese la cantidad de las piezas a procesar");
      n=teclado_1.nextInt();
      while (x<=n) {
         System.out.println("Ingrese la medida de la pieza: ");
         largo=teclado_1.nextFloat();
         if (largo>=1.20 && largo<=1.30){
            cantidad = cantidad +1;
         }
         x=x+1;
      }
      System.out.print("la cantidad de piezas aptas son: ");
      System.out.print(cantidad);
   }

}

---------------------------------------------------------
Error:
               Ingrese la cantidad de las piezas a procesar
2
Ingrese la medida de la pieza:
1.22
Exception in thread "main" java.util.InputMismatchException
   at java.util.Scanner.throwFor(Scanner.java:864)
   at java.util.Scanner.next(Scanner.java:1485)
Código
  1. [code=asm][code=java]
[/code][/code]
   at java.util.Scanner.nextFloat(Scanner.java:2345)
   at If.while_if.main(while_if.java:17)


Título: Re: Duda con un Problema en Java
Publicado por: AlbertoBSD en 7 Julio 2016, 02:10 am
Por que no caturas mejor la cadena y luego le haces parse a float?

Saludos


Título: Re: Duda con un Problema en Java
Publicado por: hectornunezrivas en 9 Julio 2016, 06:14 am
hola.
Bueno yo pienso que puedes agregar todo entre un TRY y CATCH para poder atrapar la excepción sin que tu programa deje de funcionar. Al igual deberías de checar si añadiendo un ELSE para que haga una operación sin tener que ponerlo dentro de un TRY


Título: Re: Duda con un Problema en Java
Publicado por: Azkto en 10 Julio 2016, 00:33 am
A ver si te sirve

Código:
public class JavaApplication2 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        
        Scanner teclado=new Scanner(System.in);
        System.out.print("Ingrese nº de piezas:");
        int num=teclado.nextInt();
        int contador=1;
        int cantidad=0;
        while(contador<=num){
            System.out.print("Tamaño de la pieza: ");
            float tam=teclado.nextFloat();
            if(tam>=1.20 && tam<=1.30){
                cantidad++;
            }
            contador++;
        }
        System.out.println("La cantidad de piezas son: "+cantidad);
    }
    
}

Recuerda que los números en netbeans se introducen con comas, ej: 1,22


Título: Re: Duda con un Problema en Java
Publicado por: + 1 Oculto(s) en 11 Julio 2016, 03:12 am
utiliza las etiquetas GESHI. leete las normas del foro

saludos...