Ayuda string a float

Iniciado por Kigasu, 13 Septiembre 2007, 16:36 PM

0 Miembros y 1 Visitante están viendo este tema.

Kigasu

BUeno soy medio nuevo con java y quisiera que me aclararan una duda.
EL asunto es que el profesor nos pidió ingresar 4 notas y sacar el promedio y decirle si aprueba o no....bueno entre eso nos dijo quedebíamos ingresarlos como flotantes... pero tengo entendido que al leer por telcado todo lo que entra es string...y dengo que hacer un parse para transformarlo a flotante.... ME pueden ayudar con el código decirme si voy bien..que de verdad hay cosas que no se si están bien puestas....



import java.io.*;
import java.util.*;

public class Alumno{

public static string LeerValor() throw IOException{
int valor = 0;

BUfferredReader bf = new BufferedReader(new InputStreamReader(System.in));
try{
valor = bf.readLine(); //se lee así el string?
                                                   //como debo manejarlo para ingresar un float?
}
catch(NumberFormatException e){
System.out.println("Error al ingresar el valor");
System.exit(1);
}return valor;
}



public void leernota(){
int i=0;
float nota = 0f; //está bien esto? o debo hacerlo como función

for(i=0;i<4;i++){
System.out.print(" Ingrese Nota "+i+" :");
nota=Alumno.LeerValor();
                        //aquí deberia poner como transformarlo a flotante ?
sum=sum + nota;
}
prom=sum/i;
}


public static void main(String argv[])throw IOException{
ALumno link = new Alumno();

link.leernota();
System.out.println("EL promedio es :"+link.nota());

}
}



GRacias, acepto criticas y correcciónes

Ragnarok

Utiliza el constructor de Float con un string y el método floatValue para obtener un float en lugar de Float (si es lo que quieres) o directamente el método de clase parseFloat: http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Float.html

Revisa aparte lo que son los tipos de datos porque lo que has hecho no compila.
No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones

Kigasu

#2
MM por eso dije que soy medio nuevo y no entendía lo que em trataste decir..leí un pooc eso como librería o constructor (no entiendo la diferencia :S )

No se si me puedes ayudar con algun tipo de ejemplo o diciendome si está muy mla el código..qyue debo cambiar? etc...me ayudaría eso y una pequeña explicación para entenderlo :S

Puede quedar algo así ?


iimport java.io.*;
import java.util.*;
import java.lang.float.*;

public class Alumno{

public static string LeerValor() throw IOException{
int valor = 0;

BUfferredReader bf = new BufferedReader(new InputStreamReader(System.in));
try{
valor = bf.readLine();

}
catch(NumberFormatException e){
System.out.println("Error al ingresar el valor");
System.exit(1);
}return valor;
}// cierra la clase readfloat



public void leernota(){
int i=0;
               float sum=0f;
String nota=" ";
for(i=0;i<4;i++){
System.out.print(" Ingrese Nota "+i+" :");
nota=Alumno.LeerValor();
parseFloat(String nota);
sum=sum + nota;
}
prom=sum/i;
}


public static void main(String argv[])throw IOException{
ALumno link = new Alumno();

link.leernota();
System.out.println("EL promedio es :"+link.nota());

}
}

egyware

mmm
usa

String snota = "5.0";
Float nota = new Float(snota)

para capturar del teclado puedes usar

import java.util.*;
Scanner scan;
scan = new Scanner(System.in);
Float nota = scan.nextFloat();

bueno una pequeña ayuda pero debes recordar que la clase Scanner esta disponible en jdk5.0 asi que tienes un pequeño problema
espero que te haya sido de ayuda

Ragnarok

#4
Pongamos que tienes un string s con el número leído de donde sea y un float f, incluyendo las declaraciones sería así:

Código (java) [Seleccionar]
String s;
float f;
[...]
f = Float.parseFloat(s);


Y esto lo puedes hacer por lo menos desde java 1.4.2.

Si no sabes lo que es un constructor, etc. te aconsejo que dejes de intentar programar y leas un poco más, por lo menos hasta que comprendas los conceptos básicos, después será el momento de pasar a la práctica.
No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones