Java fa confusione tra punto e virgola nei decimali

di il
4 risposte

Java fa confusione tra punto e virgola nei decimali

Salve, il problema che vorrei esporvi riguarda i decimali.
Quando java scrive i decimali su un file li scrive con il separatore corrispondente al punto, quando invece legge da un file li legge con la virgola.
Con questo quando vado a leggere da file da errore perchè non conosce il formato, appena sostituisco il punto con la virgola tutto funziona correttamente.
Come posso risolvere?

4 Risposte

  • Re: Java fa confusione tra punto e virgola nei decimali

    rairana ha scritto:


    Salve, il problema che vorrei esporvi riguarda i decimali.
    Quando java scrive i decimali su un file li scrive con il separatore corrispondente al punto, quando invece legge da un file li legge con la virgola.
    Con questo quando vado a leggere da file da errore perchè non conosce il formato, appena sostituisco il punto con la virgola tutto funziona correttamente.
    Come posso risolvere?
    Devi precisare qui quale classe/metodo usi per leggere/parsare il valore decimale. Altrimenti non si può dire granché altro ...
  • Re: Java fa confusione tra punto e virgola nei decimali

    andbin ha scritto:


    rairana ha scritto:


    Salve, il problema che vorrei esporvi riguarda i decimali.
    Quando java scrive i decimali su un file li scrive con il separatore corrispondente al punto, quando invece legge da un file li legge con la virgola.
    Con questo quando vado a leggere da file da errore perchè non conosce il formato, appena sostituisco il punto con la virgola tutto funziona correttamente.
    Come posso risolvere?
    Devi precisare qui quale classe/metodo usi per leggere/parsare il valore decimale. Altrimenti non si può dire granché altro ...
    Utilizzo Double.ParseInt per leggere da una JTextField.
    Leggo dal file mediante uno Scanner e quindi nomeScanner.nextDouble();
    Scrivo sul file mediante semplici destinazione.println();

    Se non basta quanto scritto, posto il codice interessato.
  • Re: Java fa confusione tra punto e virgola nei decimali

    rairana ha scritto:


    Utilizzo Double.ParseInt per leggere da una JTextField.
    Double.parseDouble si aspetta solo ed esclusivamente il punto ( "." ) come separatore dei decimali. Non c'è alcuna "localizzazione".

    rairana ha scritto:


    Leggo dal file mediante uno Scanner e quindi nomeScanner.nextDouble();
    In Scanner l'input è "localizzato", ovvero si basa su un Locale. Che è di base quello predefinito della JVM. Se la lingua impostata sulla tua macchina è l'italiano, Scanner si aspetta la virgola.
    Se vuoi "fissare" la localizzazione dell'input in Scanner:

    tuoScanner.useLocale(Locale.ENGLISH);

    rairana ha scritto:


    Scrivo sul file mediante semplici destinazione.println();
    Un print/println di un double scrive solo ed esclusivamente il punto ( "." ) come separatore dei decimali. Non c'è alcuna "localizzazione".
  • Re: Java fa confusione tra punto e virgola nei decimali

    andbin ha scritto:


    rairana ha scritto:


    Utilizzo Double.ParseInt per leggere da una JTextField.
    Double.parseDouble si aspetta solo ed esclusivamente il punto ( "." ) come separatore dei decimali. Non c'è alcuna "localizzazione".

    rairana ha scritto:


    Leggo dal file mediante uno Scanner e quindi nomeScanner.nextDouble();
    In Scanner l'input è "localizzato", ovvero si basa su un Locale. Che è di base quello predefinito della JVM. Se la lingua impostata sulla tua macchina è l'italiano, Scanner si aspetta la virgola.
    Se vuoi "fissare" la localizzazione dell'input in Scanner:

    tuoScanner.useLocale(Locale.ENGLISH);

    rairana ha scritto:


    Scrivo sul file mediante semplici destinazione.println();
    Un print/println di un double scrive solo ed esclusivamente il punto ( "." ) come separatore dei decimali. Non c'è alcuna "localizzazione".
    Grazie al tuo secondo suggerimento sono riuscito a risolvere il problema, grazie mille!!!
Devi accedere o registrarti per scrivere nel forum
4 risposte