import java.io.*;
public class Canvi {
public static void main(String[] args) throws IOException {
// la classe BufferedReader serveix per llegir del
// teclat
BufferedReader entrada=new BufferedReader(
new InputStreamReader(System.in));
// Demanem informació a l'usuari i la recollim a la
// variable divisain.
System.out.println("Quina moneda desitgeu canviar? "+
"(E)uros, (D)olars o (I)ens?");
String divisain=entrada.readLine();
while (!(divisain.equals("E") || divisain.equals("e")
|| divisain.equals("I") || divisain.equals("i")
|| divisain.equals("D") || divisain.equals("d"))) {
System.out.println("Quina moneda desitgeu canviar? "+
"(E)uros, (D)olars o (I)ens?");
divisain=entrada.readLine();}
// carreguem la moneda canviada
System.out.println("Quina moneda voleu rebre? "+
"(E)uros, (D)olars o (I)ens?");
String divisaout=entrada.readLine();
while (!(divisaout.equals("E") || divisaout.equals("e")
|| divisaout.equals("I") || divisaout.equals("i")
|| divisaout.equals("D") || divisaout.equals("d"))) {
System.out.println("Quina moneda voleu rebre? "+
"(E)uros, (D)olars o (I)ens?");
divisaout=entrada.readLine();}
// nom
System.out.println("Introdueixi aqui el seu nom");
String nom=entrada.readLine();
// cognom
System.out.println("Introdueixi aqui el seu cognom");
String cognom=entrada.readLine();
// dni
System.out.println("Quin es el seu DNI?");
String dni=entrada.readLine();
// quantitat
System.out.println("Quantitat de diners a canviar?");
String quantitat=entrada.readLine();
String cadena=quantitat;
double doubleCalers;
try {
doubleCalers=Integer.parseInt(quantitat);
} catch(Exception e) {}
}
public static double getCanvi(double doubleCalers, String divisain, String divisaout) {
if (divisain.equals("D") || divisain.equals("d")){
if (divisaout.equals("E") || divisaout.equals ("e")){
System.out.println(divisain*0,6727)"");}
if (divisaout.equals("I") || divisaout.equals ("i")){
System.out.println(divisain*90,805)"Yens");}
if (divisaout.equals("D") || divisaout.equals("d")){
System.out.println(divisain"Dolars");}
}
if (divisain.equals("I") || divisain.equals("i")){
if ((divisaout.equals("D") || divisaout.equals("d")){
System.out.println(divisain*0,011013"Dolars");}
if (divisaout.equals("E") || divisaout.equals("e")){
System.out.println(divisain*0,0074"");}
if (divisaout.equals("I") || divisaout.equals("i")){
System.out.println(divisain"Yens");}
}
if (divisain.equals("E") || divisain.equals("e")){
if (divisaout.equals("D") || divisaout.equals("d")){
System.out.println(divisain*1,4865"Dolars");}
if (divisaout.equals("I") || divisaout.equals("i")){
System.out.println(divisain*134,9859"Yens");}
if (divisaout.equals("E") || divisaout.equals("e")){
System.out.println(divisain"Euros");}
}
}
}
String cadena=quantitat;
double doubleCalers = quantitat;
try {
doubleCalers = Integer.parseInt(cadena);
} catch(Exception e) {}
package Conversor;
public class Conversor {
public static void main() {
String quantitat="200";
String cadena=quantitat;
double doubleCalers;
try {
doubleCalers = new Double(quantitat).doubleValue();
} catch(NumberFormatException e) {
System.out.println("Error en el formato de la cifra introducida: " + quantitat);
}
}
}
Jabatus escribió:Es mejor que consultes un manual de Java, los hay a montones, o sino, la API de Sun. En cualquier caso, ahí va:package Conversor;
public class Conversor {
public static void main() {
String quantitat="200";
String cadena=quantitat;
double doubleCalers;
try {
doubleCalers = new Double(quantitat).doubleValue();
} catch(NumberFormatException e) {
System.out.println("Error en el formato de la cifra introducida: " + quantitat);
}
}
}
El constructor de la clase Double en la API de Sun: http://java.sun.com/j2se/1.4.2/docs/api ... ang.String)
IvanMSN escribió:Se refiere al tamaño que tendrá el Double doubleCalers.
String cadena=quantitat;
double doubleCalers = 0; //es aconsejable inicializar siempre las variables
try {
doubleCalers = Double.parseDouble(cadena);
} catch(Exception e) {
e.printStackTrace(); //Acostumbrate a poner esto como mínimo en los catch.
}
String cadena=quantitat;
double doubleCalers = 0; //es aconsejable inicializar siempre las variables
try {
doubleCalers = Double.parseDouble(cadena);
}catch(NumberFormatException e) {
System.out.println("El dato "+cadena+" no es un numero válido");
}catch(Exception e) {
e.printStackTrace(); //Acostumbrate a poner esto como mínimo en los catch.
}
redscare escribió:IvanMSN escribió:Se refiere al tamaño que tendrá el Double doubleCalers.
Qué???
A ver, ha puesto el 200 como ejemplo y yasta. Los Double no son arrays que tengas que inicializar a un tamaño ni nada así.
Si haces
double myDouble = new Double("200").doubleValue();
creas un myDouble que vale 200 y yasta
Si quieres pasar de String a double, no uses métodos del objeto Integer, usa los del Double directamente. En tu ejemplo:String cadena=quantitat;
double doubleCalers = 0; //es aconsejable inicializar siempre las variables
try {
doubleCalers = Double.parseDouble(cadena);
} catch(Exception e) {
e.printStackTrace(); //Acostumbrate a poner esto como mínimo en los catch.
}
Ah, y otra cosa que es una putada en java si no lo sabes. Digamos que tienes:
int x = 5;
int y = 2;
double division = x/y;
pues si ves el valor de 'division', es 2, no 2.5. Porque java divide primero 2 enteros, y el resultado es un entero (la parte decimal se tira), y luego mete ese entero en un double dándote un hermoso 2.0
Para que eso salga bien tienes que hacer
double division = ((double)x)/y;
Así haces un cast forzado de x convirtiéndola en un double. Y al dividir un double por un int ya si te da un double.
Y si quieres notaza, pon varios catch (se evaluan en el orden en que los pongas)String cadena=quantitat;
double doubleCalers = 0; //es aconsejable inicializar siempre las variables
try {
doubleCalers = Double.parseDouble(cadena);
}catch(NumberFormatException e) {
System.out.println("El dato "+cadena+" no es un numero válido");
}catch(Exception e) {
e.printStackTrace(); //Acostumbrate a poner esto como mínimo en los catch.
}
ShinMegami escribió:una dudilla en la parte final dl codigo que estan los println... borro lo d System.out.println i pongo un return para que devuelva el mensaje???