Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    33

    formato valore numerico double

    Salve a tutti ho un problema...
    Ho un valore double (es. 341250.00) che in formato italiano è : 341.250,00 (che riesco a farmi restituire con la funzione
    codice:
    getInstance(Locale.ITALY);
    in un metodo di una classe apposita.

    Il mio problema è che per avere quel formato il mio metodo mi restituisce una stringa e non un double e questo pregiudica l'ordinamento di tale valore in una colonna di una tabella.

    Scusate se non sono stato abbastanza chiaro...

    La mia domanda finale è:

    come posso avere il formato italiano (###.###,##) per un valore mantenendo il tipo double??

    Grazie mille

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Il valore non ha nulla a che vedere con il "formato" in cui viene stampato/visualizzato.

    Un double è un double.

    Come visualizzarlo è il formatter a deciderlo, puoi formattarlo come ti pare, ma sempre il double rimane.

    codice:
    double d = 10000.0d;   // Questo è un 10.000 (valore valido per qualunque luogo nel mondo)
    
    NumberFormat nfIta = NumberFormat.getInstance( Locale.ITALY );
    System.out.println( nfIta.format(d) );
    
    NumberFormat nfCanada = NumberFormat.getInstance( Locale.CANADA );
    System.out.println( nfCanada.format(d) );
    Nota che ho usato due formatter diversi, ma ho stampato sempre e solo lo stesso valore.


    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    33
    Ciao LeleFT, intanto ti ringrazio per la tempestiva risposta....
    purtroppo temevo di non essermi espresso al meglio(scusami)... il mio problema è che il metodo format della classe NumberFormat restituisce un valore di tipo String formattato per bene, ma a me ne serve uno formattato allo stesso modo ma di tipo double, ti spiego perchè:

    questo valore restituito lo devo utilizzare in una tabella di valori numerici con l'opzione "sorting" e fa confusione con le stringhe invece con i valori double funziona bene

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    E io torno a ripeterti che il tipo di valore "double" non ha alcun formato (in nessun linguaggio di programmazione).
    E' un numero, memorizzato nel sistema come insieme di bit e riconosciuto dal sistema come tale e perfettamente ordinabile.
    Quello che tu chiami "formattazione" è il modo di "visualizzare" un numero e non c'entra nulla con il valore... quello viene fatto da un formatter che, proprio per poter rappresentare il valore nel formato più comodo all'utente, usa una stringa.

    Se tu hai bisogno di ordinare dei valori double, allora usa il tipo double.

    Non confondere la logica di programma con la "presentazione".

    La tabella (immagino JTable) è composta, sostanzialmente, da 2 (o 3 a seconda) elementi:

    1) Il modello logico. Nel modello i valori dovrebbero essere di tipo double, in modo da poter essere manipolati matematicamente (operazioni matematiche, ordinamenti, confronti, ecc).

    2) Il modello visuale. Nel modello visuale, gli stessi valori del modello logico sono "trasformati" in modo da essere presentati all'utente sotto una "forma" a lui congeniale e nota. E' qui che si usa il "formatter" per far vedere i numeri come piace all'utente (con i separatori delle migliara, la virgola decimale, il segno meno prima o dopo, eventuali colori, ecc... tutte cose che non hanno nulla a che vedere con il "valore" del numero, ma sono solo un "contorno").

    3) Il modello usato per l'editing dei valori.

    Quindi, ordinamenti e confronti si fanno nel modello logico (il TableModel) che ha tutti i valori di tipo double e tali ordinamenti verranno poi riflessi dal modello visuale.


    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
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    33
    Tutto chiaro Lele, continuo ad avere il problema perchè ho sbagliato io gestione in quanto utilizzo un ciclo che va a popolare una tabella fatta in jquery(nello specifico DataTable), e quindi mi ritrovo il valore java(restituito in un resultSet) in una colonna di una tabella jquery... es:

    codice:
     
    <table><%--  Questa tabella è in jQuery ed ha come opzione il sorting delle colonne --%>
    <%
             for (int i = 0; i < 10; i++) {
                   rs = (FATBean)fatt.getA().get(i);// rs è un oggetto bean della classe FATBean%>
                  <tr>
                      <td align="right">
                            <%= rs.getValore() //valore restituito dalla resultSet messo nel bean %>
                      </td>
            <%}%>
    </table>
    Il getValore è di tipo double se lo formatto sputtana l'ordinamento della tabella


    non voglio insistere a questo punto devo necessariamente trovare un'altra strada

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Faccio notare che jQuery (che finora non avevi mai nominato) è tecnologia lato client (JavaScript)...

    e quindi mi ritrovo il valore java(restituito in un resultSet) in una colonna di una tabella jquery... es:
    A questo punto Java non c'entra più nulla... la JSP è già stata processata e spedita al client... jQuery lavora solo dopo che la pagina HTML è stata compilata.

    Mi sa che tu cerchi una soluzione JavaScript (perchè qui, Java, non c'entra più nulla) e forse sarebbe il caso di spostare la discussione nel forum JavaScript, dove probabilmente ti sapranno delucidare meglio sulle sue funzioni.


    Sposto la discussione nel forum JavaScript.


    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

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    33
    Grazie mille...cmq per la disponibilità il prblema mi ha fatto confondere le idee su dove cercare la risoluzione al mio problema

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.