Visualizzazione dei risultati da 1 a 7 su 7

Discussione: formattare cifre

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    892

    formattare cifre

    Salve a tutti.

    Ho un campo numerico con due decimali di db Mysql.

    Nell'estrazione dei dati vorrei che mi mettesse da solo i separatori delle migliaia e la virgola in doppia cifra.

    Come posso fare?

    Grazie tante e scusate il disturbo,
    franz

  2. #2

    Re: formattare cifre

    Originariamente inviato da franz79
    Salve a tutti.

    Ho un campo numerico con due decimali di db Mysql.

    Nell'estrazione dei dati vorrei che mi mettesse da solo i separatori delle migliaia e la virgola in doppia cifra.

    Come posso fare?

    Grazie tante e scusate il disturbo,
    franz
    number_format(). Vedi il manuale .


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    892
    dunque, io ho fatto così nella select:

    Codice PHP:
    $query_limit mysql_query("SELECT id, numero, tipologia, oggetto, NUMBER_FORMAT(importocorso, 2, ',', ' '), sezione, DATE_FORMAT(giorno,'%d/%m/%Y') as data FROM determinazioni WHERE tipologia= '$tipologia' ORDER BY numero DESC LIMIT $primo$per_page");
    while(
    $results mysql_fetch_array($query_limit)) 
    e poi richiamo il dato così:

    Codice PHP:
    print ($results['importocorso']); 
    ma mi restituisce:


    Warning: Supplied argument is not a valid MySQL result resource in /var/www/miosito/public/portal/determine/contocorso.php on line 90

    Eppure il campo si chiama effettivamente "importocorso". Dove sbaglio?

  4. #4
    number_format() e' una funzione di php.

    $new_format = NUMBER_FORMAT($results['importocorso'], 2, ',', ' ');

    echo $new_format;


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    892
    Adesso li scrive giusti, ma ho un altro problema (scusa tanto il disturbo...)

    Dunque, io faccio fare una somma di tutti i valori presenti nel campo importocorso, e per farlo facevo così:

    Codice PHP:
    $query_limit mysql_query("SELECT id, numero, tipologia, oggetto, importocorso, sezione, DATE_FORMAT(giorno,'%d/%m/%Y') as data FROM determinazioni WHERE tipologia= '$tipologia' ORDER BY numero DESC LIMIT $primo$per_page");
    while(
    $results mysql_fetch_array($query_limit))
     {

    $cifra=$results['importocorso'];

    $conto=$conto $cifra;

    (...)

    mysql_close();
    print (
    "
    "
    );
    print (
    "
    "
    );
    print (
    "[b]");
    print (
    "Totale complessivo: € ");
    print(
    $conto);
    ?> 
    e adesso, formattando, faccio così:

    Codice PHP:

    {

    $new_format NUMBER_FORMAT($results['importocorso'], 2','' '); 


    $cifra=$new_format;

    $conto=$conto $cifra;

    echo 
    '<div align="center">';
      echo 
    '<center>';
      echo 
    '<table border="0" width="845" height="18">';
        echo 
    '<tr>';
          echo 
    '<td width="55" height="17" style="border: 1 solid #032D4E">';
            echo 
    '<p align="center"><font face="Arial" size="2">';
    print (
    $results['numero']);
          echo 
    '<td width="82" height="17" style="border: 1 solid #032D4E align="center"><font face="Arial" size="2">';
    print (
    $results['data']);
          echo 
    '<td width="217" height="17" style="border: 1 solid #032D4E align="center"><font face="Arial" size="2">';
    print (
    $results['oggetto']);
          echo 
    '<td width="137" height="17" style="border: 1 solid #032D4E align="center"><font face="Arial" size="2">';
    print (
    $new_format);
    echo 
    '<td width="238" height="17" style="border: 1 solid #032D4E align="center"><font face="Arial" size="2">';
    print (
    $results['sezione']);
    echo 
    '</font></td>';
        echo 
    '</tr>';
      echo 
    '</table>';
      echo 
    '</center>';
    echo 
    '</div>';
    }

    mysql_close();
    print (
    "
    "
    );
    print (
    "
    "
    );
    print (
    "[b]");
    print (
    "Totale complessivo: € ");
    print(
    $conto);
    ?> 
    Il fatto è che le cifre vengono scritte giuste, ma LA SOMMA E' SBAGLIATA!!! in pratica mi viene € 3901 al posto di € 5341435


    Come mai?

  6. #6
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    fai le somme prima di formattare il numero... in ogni caso la somma è sbagliata xke nella notazione americana la virgola separa le migliaia e il punto separa i decimali, dato che passi una stringa ad una somma php effettua un casting forzato e converte quella stringa in un numero, xò con notazione americana

  7. #7
    il number_format lo devi utilizzare solo al momento di stampare il dato. Php considera il punto ccome divisore dei decimali, comunque.

    In altre parole visualizzi come vuoi con number format, esattamente come fai in mysql con date_format e la data. Tieni presente che per php diventa una stringa.

    Quindi tutte le operazioni vanno eseguite con il punto come divisore decimale.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.