Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Conversione valuta non accetta tipo double

    Salve a tutti, sono un novizio di programmazione e sto cercando di esercitarmi quanto piu possibile al ragionamento e all'ottica di java. Sto cercando di svolgere questo programma.

    Scrivete un programma che chieda all'utente di inserire il tasso di cambio odierno fra dollari USA ed euro. Quindi, il programma legge alcuni valori in dollari e li converte in euro. Terminate quando l'utente scrive Q
    Ecco quello che ho realizzato:
    codice:
    import java.util.Scanner;
    
    
    public class ConversioneValuta {
        
        public static void main(String[] args)
        {
            Scanner in = new Scanner(System.in);
            boolean uscita = false;
            while(!uscita){
            System.out.println("Inserire tasso odierno di conversione fra dollaro ed euro.Inserire Q per uscire");
            String scelta = in.next();
            if (scelta.equalsIgnoreCase("Q"))
                uscita = true;
            else {
                
                double tasso = Double.parseDouble(scelta);
                System.out.println("Inserisci l'importo in dollari da convertire in euro");
                double importo = in.nextDouble();
                double dollari = importo * tasso;
                System.out.println("L'importo convertito in euro è: " + dollari);
                        
            }
    
    }}}
    il problema è che quando inserisco valori double il programma si arresta, eppure ho inserito la conversione da stringa a double e il compilatore non mi da errore, come mai? cosa dovrei modificare?
    e come mai non fa differenza di scrittura se scrivo " double tasso = Double.parseDouble(scelta); " o così "int tasso = Integer.parseInt(scelta);" avevo realizzato il programma con quest'ultimo, solo che poi l'ho modificato in double pensando che funzionasse per valori double ma invece non va.

    Spero di essere stato chiaro, e spero che rispondiate a tutti i miei dubbi.
    Ultima modifica di applefriend; 01-12-2013 a 21:06

  2. #2
    scusate, sbagliavo nel digitare il tasso, usavo la virgola al posto del punto, usando il punto non mi da problemi però quando chiedo di inserire l'importo se non è di tipo intero mi da errore. Eppure ho impostato l'importo a double, qualcuno sa come aiutarmi?

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da applefriend Visualizza il messaggio
    scusate, sbagliavo nel digitare il tasso, usavo la virgola al posto del punto, usando il punto non mi da problemi però quando chiedo di inserire l'importo se non è di tipo intero mi da errore. Eppure ho impostato l'importo a double, qualcuno sa come aiutarmi?
    parseDouble non gestisce alcun tipo di "localizzazione" e il formato deve essere ben preciso con il '.' come separatore dei decimali. Se volessi parsare una stringa con possibilità di usare un differente Locale, c'è la classe NumberFormat (o DecimalFormat).

    Invece Scanner "di serie" supporta la localizzazione e sulla tua macchina presumo che il Locale di default sia ovviamente quello italiano. Quindi Scanner in modo predefinito accetta numeri decimali in formato italiano, ovvero con la virgola.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.