Formattare cifre e date

di Anonimizzato25427 il
35 risposte

35 Risposte - Pagina 3

  • Ora è cambiata la modalità della formattazione, in pratica se ci sono migliaia và troncato tutto, questo deve essere l'output:
    per le decine/centinaia di migliaia: 340 k
    per le migliaia: 1.234 k
    A questo punto prelevo dal db, e per verificare se è nell'ordine delle centinaia/decina di migliaia oppure no ? per troncare passo a string e vado poi di substring?
  • WinstonSmith ha scritto:


    in pratica se ci sono migliaia và troncato tutto:
    81.654,432 deve diventare 81 mila
    1.125,43 deve diventare 1.125 k
    A questo punto prelevo dal db, e per verificare se è nell'ordine delle migliaia?
    Se è questo tipo di "approssimazione" utilizzando suffissi es. "mila", "k" ecc.. purtroppo non c'è nulla di già fatto. A dire il vero, in Java 12 hanno aggiunto i "compact" number format che fanno una cosa del genere. Quando l'avevo provato tempo fa avevo notato delle cose che non mi quadravano ma poi non avevo indagato più di tanto. Presumo comunque che non puoi usare Java 12.

    Quindi l'unica soluzione è fare tutto "a mano". Avendo il valore numerico basta fare dei test a "scaglioni" così (esempio):
    - se valore superiore/uguale a 1000000000 divido per 1000000000 e metto dietro " miliardo" (/" miliardi")
    - se valore superiore/uguale a 1000000 divido per 1000000 e metto dietro " milione" (/" milioni")
    ecc...

    Poi quali siano le cifre precise che rappresentano i punti di passaggio da uno scaglione all'altro ... li stabilisci tu.
  • andbin ha scritto:



    Se è questo tipo di "approssimazione" utilizzando suffissi es. "mila", "k" ecc.. purtroppo non c'è nulla di già fatto. A dire il vero, in Java 12 hanno aggiunto i "compact" number format che fanno una cosa del genere. Quando l'avevo provato tempo fa avevo notato delle cose che non mi quadravano ma poi non avevo indagato più di tanto. Presumo comunque che non puoi usare Java 12.

    Quindi l'unica soluzione è fare tutto "a mano". Avendo il valore numerico basta fare dei test a "scaglioni" così (esempio):
    - se valore superiore/uguale a 1000000000 divido per 1000000000 e metto dietro " miliardo" (/" miliardi")
    - se valore superiore/uguale a 1000000 divido per 1000000 e metto dietro " milione" (/" milioni")
    ecc...

    Poi quali siano le cifre precise che rappresentano i punti di passaggio da uno scaglione all'altro ... li stabilisci tu.
    Però qui c'è il problema della formattazione a monte:
    dal db prende 51,234 che deve diventare 51 a cui poi va aggiunto il "k", qui divido ed aggiungo.
    ma qui che 1,234.00 deve diventare 1.234 a cui va poi aggiunto € in che ordine procedo ?
  • No, non mi trovo neanche con le decine e migliaia, perché deve prendermi solo il 51 di 51,243 e non tutto, come formatto correttamente, mi faccio semplicamente restituire un int invece di un double?

    Se la cifra è 51,243:
    integer x = elemento mappato . get cifra()/1000;
    e poi aggiungo il k
  • WinstonSmith ha scritto:


    Però qui c'è il problema della formattazione a monte:
    dal db prende 51,234 che deve diventare 51 a cui poi va aggiunto il "k", qui divido ed aggiungo.
    ma qui che 1,234.00 deve diventare 1.234 a cui va poi aggiunto € in che ordine procedo ?

    WinstonSmith ha scritto:


    No, non mi trovo neanche con le decine e migliaia, perché deve prendermi solo il 51 di 51,243 e non tutto, come formatto correttamente, mi faccio semplicamente restituire un int invece di un double?
    Dalla query sarebbe utile estrarre un double. Poi un conto è il suffisso (es. "mila") e l'altro conto è la valuta.

    Comunque, giusto per chiarire, il tuo esempio di prima "1.125,43 deve diventare 1.125 k" non ha molto senso. "k" vuol già dire "per 1000", quindi 1.125 k vorrebbe dire un 1125000.
  • Sì, a quel 1,125 va aggiunto il simbolo euro e non anche il k.
    Dopo aver sistemato tutto, hanno di nuovo cambiato idea Grazie sempre per l'aiuto.
Devi accedere o registrarti per scrivere nel forum
35 risposte