Tengo un pequeñísimo problema en java. Tengo esta clase: package pruebabanco; public class Cuenta { private double saldo; //Constructor public Cuenta (double saldoInicial) { if(saldoInicial > 0.0) saldo = saldoInicial; } //Sumar saldo a cuenta public void abonar(double monto) { saldo = saldo + monto; } //Devuelve saldo de cuenta public double obtenerSaldo() { return saldo; } } Y mi principal que sería esta: package pruebabanco; import java.util.Scanner; public class PruebaBanco { public static void main(String[] args) { Cuenta cuenta1 = new Cuenta (50.00); Cuenta cuenta2 = new Cuenta (-7.53); System.out.printf("El saldo inicial de la cuenta 1 es $%.2f\n",cuenta1.obtenerSaldo()); System.out.printf("El saldo inicial de la cuenta 2 es $%.2f\n",cuenta2.obtenerSaldo()); Scanner entrada = new Scanner(System.in); double montoDeposito; System.out.print("Ingrese el monto que desea agregar a la cuenta 1: "); montoDeposito = entrada.nextDouble(); System.out.printf("\nsumando %.2f al saldo de la cuenta 1\n\n", montoDeposito); cuenta1.abonar(montoDeposito); //mostrar los saldos System.out.printf("Saldo de cuenta 1: $%.2f\n",cuenta1.obtenerSaldo()); System.out.printf("Saldo de cuenta 2: $%.2f\n\n",cuenta2.obtenerSaldo()); System.out.print("Ingrese el monto que desea agregar a la cuenta 2: "); montoDeposito = entrada.nextDouble(); System.out.printf("\nsumando $%.2f al saldo de la cuenta 2\n\n",montoDeposito); cuenta2.abonar(montoDeposito); //mostrar los saldos System.out.printf("Saldo de cuenta 1: $%.2f\n",cuenta1.obtenerSaldo()); System.out.printf("Saldo de cuenta 2: $%.2f\n\n",cuenta2.obtenerSaldo()); } } Cuando lo ejecuto y quiero agregar un monto en decimales (por ejm. 25.30) me da un error: El saldo inicial de la cuenta 2 es $0,00 Ingrese el monto que desea agregar a la cuenta 1: 25.30 Exception in thread "main" java.util.InputMismatchException at java.util.Scanner.throwFor(Scanner.java:909) at java.util.Scanner.next(Scanner.java:1530) at java.util.Scanner.nextDouble(Scanner.java:2456) at pruebabanco.PruebaBanco.main(PruebaBanco.java:18) Java Result: 1 BUILD SUCCESSFUL (total time: 8 seconds) Pero cuando agrego un valor (por ejm. 20), se desarrolla normal. Como puedo hacer para poder ingresar los valores double? muchas gracias
men agrega esto a tu Scanner: Scanner entrada = new Scanner(System.in).useLocale(Locale.US); bueno man la palabra "useLocale" no lleva espacios
Si escribes 25,30 (con coma) en vez de 25.30 (con punto) el problema se soluciona. La solucion que propone kazoku tambien funciona. En ese caso puedes usar el punto normal.