Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    casino con una stringa con la virgola

    Ciao a tutti,
    Sto scrivendo un programmino dove mi arriva una Stringa su un JTextfield
    converto il valore in un double dunque con decimali .00
    elaboro questo numero (result)

    poi lo converto in striga con due decimali di default
    stringaProva= String.format("%.2f", result);

    e lo rimando sul JTextfield
    txtDisplay.setText(stringaProva);

    il mio problema e' che il numero mi arriva con i decimali messi dopo un "punto"
    e io quando li rispedisco i decimali son messi dopo una "virgola"

    di conseguenza se faccio un altro passaggio mi da errore..

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da antonello2 Visualizza il messaggio
    poi lo converto in striga con due decimali di default
    stringaProva= String.format("%.2f", result);

    e lo rimando sul JTextfield
    txtDisplay.setText(stringaProva);

    il mio problema e' che il numero mi arriva con i decimali messi dopo un "punto"
    e io quando li rispedisco i decimali son messi dopo una "virgola"
    Presumo hai usato Double.parseDouble. Questo tratta solo la forma "inglese" (decimali dopo il punto). Mentre quel format che hai usato utilizza il Locale di default, per cui il formato cambia appunto in base al Locale predefinito.
    Semplicemente ... utilizza l'altro format, quello che riceve un Locale esplicito. E gli passi Locale.ENGLISH

    Ma ci sarebbe una soluzione migliore per parsing/formatting: usare un NumberFormat/DecimalFormat.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Semplicemente ... utilizza l'altro format ..
    cioe' ??

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Documentazione della classe String alla mano, si vede che ci sono due metodi format().

    Uno (quello che hai usato tu) prende come primo parametro la stringa di formattazione e poi i vari parametri.

    L'altro prende come primo parametro un oggetto Locale, poi la stringa di formattazione ed in ultimo i parametri.

    Dovrai usare quest'ultimo overload.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    ok va bene ma cosa devo scrivere esatamente ?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da antonello2 Visualizza il messaggio
    ok va bene ma cosa devo scrivere esatamente ?
    Come ti ha precisato LeleFT (e lo ribadisco io), ci sono 2 format in String:

    public static String format(Locale l, String format, Object... args)
    e
    public static String format(String format, Object... args)

    Tu avevi usato il secondo. Usa il primo e gli passi il Locale.ENGLISH
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  7. #7
    String answer = String.format("%.2f", result); cosi funzia ma mi mette la virgola

    String answer2 = String format(Locale.ENGLISH, "%.2f", result); cosi' mi da propro errore

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da antonello2 Visualizza il messaggio
    String answer2 = String format(Locale.ENGLISH, "%.2f", result); cosi' mi da propro errore
    Locale va importato, chiaramente.
    Tra String e format ci vuole il ".", chiaramente.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  9. #9
    Sono un pistola non ho messo il punto
    Ma scusate io ho usato Double.parseDouble
    numeroDouble= Double.parseDouble(txtDisplay.getText());
    che mi mette i decimali separati dal punto, non si potrebbe ricevere il double separato dalla virgola ?
    A video adesso String answer2 = String.format(Locale.ENGLISH, "%.2f", result); Funziona ma non e' molto
    corretto in Italia i decimali sono separati dalla virgola e non dal punto..

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da antonello2 Visualizza il messaggio
    non si potrebbe ricevere il double separato dalla virgola ?
    È lo scenario migliore che dicevo prima: NumberFormat/DecimalFormat
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java 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 © 2024 vBulletin Solutions, Inc. All rights reserved.