ciao a tutti,
premetto che sono alle prime armi con java. Stavo studiando un programma, ho provato a riscriverlo ed eseguirlo ma mi da i seguenti errori in esecuzione:
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 ProvaConto.main(ProvaConto.java:20)
il codice è questo:
Il programma fa riferimento a:codice:import java.util.Scanner; public class ProvaConto { public static void main(String args[]) { ContoCorrente conto1 = new ContoCorrente(50.00); ContoCorrente conto2 = new ContoCorrente(-7.53); // mostra il saldo iniziale di ciascun oggetto System.out.printf("saldo di conto1: $%.2f\n", conto1.getSaldo()); System.out.printf("saldo di conto2: $%.2f\n", conto2.getSaldo()); Scanner input = new Scanner(System.in); double deposito; // quantità inserità dall'utente System.out.printf("Inserire deposito per conto1: "); deposito = input.nextDouble(); // input dell'utente System.out.printf("\nsomma %2.f al saldo di conto1\n\n", deposito); conto1.accredita(deposito); // somma al saldo di conto1 // mostra i saldi System.out.printf("saldo di conto1: $%2.f\n", conto1.getSaldo()); System.out.printf("saldo di conto2: $%2.f\n", conto2.getSaldo()); System.out.printf("Inserire deposito per conto2: "); deposito = input.nextDouble(); System.out.printf("\nsomma %2.f al saldo di conto2\n\n", deposito); conto2.accredita(deposito); // mostra i saldi System.out.printf("saldo di conto1: $%2.f\n", conto1.getSaldo()); System.out.printf("saldo di conto2: $%2.f\n", conto2.getSaldo()); } }
qualche suggerimento?codice:public class ContoCorrente { private double saldo; // variabile di istanza per il saldo // costruttore public ContoCorrente(double saldoIniziale) { /* controllo che saldoIniziale sia maggiore di 0.0 se non lo è, viene inizializzato a 0.0 per default */ if (saldoIniziale > 0.0) saldo = saldoIniziale; } // accredita una cifra al conto public void accredita (double cifra) { saldo = saldo + cifra; } // restituisce il saldo di ContoCorrente public double getSaldo() { return saldo; // restituisce il valore di saldo al metodo chiamante } }

Rispondi quotando
hai ragione, avevo sbagliato a copiare la formattazione per i decimali. è servito correggere solamente con %.2f
