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

    problema numeri decimali che si azzerano

    Salve ho un problema

    nel db ho un campo di nome importo_ben
    di tipo varchar 255

    che ha al suo interno questo valore 10261,22

    che quando stampo a video lo vedo così

    EUR 10.261,00

    uso questo codice per stamparlo nel formato moneta

    codice:
    
    
    codice:
    <?
    setlocale(LC_MONETARY, 'it_IT');
    echo money_format('%.2n', $importo_ben);
    ?>



    e se anche vado a tirarmi la somma di tutti i record che contengono quel valore campo

    codice:
    
    
    codice:
    $sql = "SELECT SUM(importo_ben) as totale_erogato FROM beneficiari"; 
    $res = mysql_query($sql); 
    list($totale_erogato) = mysql_fetch_array($res);
    setlocale(LC_MONETARY, 'it_IT');
    echo money_format('%.2n', $totale_erogato);


    mi trovo soldi in meno... perche suppongo non sommi i decimali

    sapreste dirmi come mai mi annulla i decimali o come risolvere???


    grazie mille e buon lavoro


    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    magari un campo di tipo numerico (ad esempio, decimal) sarebbe meglio di un varchar, non credi?

  3. #3
    Il problema di fondo è che utilizzi un varchar per contenere un decimal e questo non è bene soprattutto se devi farci dei conti e a maggior ragione se le cifre rappresentano soldi.
    Ti consiglio di modificare il tipo del campo in decimal invece di provare a gestirlo come varchar.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    ho messo decimal e adesso mi ha addirittura tolto anche gli .00 dal db
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  5. #5
    Quando dichiari un campo di tipo decimal devi anche definire il numero di decimali
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    l'ho fatto
    decimal(10,2)
    ma continua a darmi

    24909.00

    nel db

    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  7. #7
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    prova a cambiare le virgole in punti quando il campo è ancora varchar

  8. #8
    Quote Originariamente inviata da clasku Visualizza il messaggio
    prova a cambiare le virgole in punti quando il campo è ancora varchar
    così pare che funzioni ma come faccio ora a cambiare la , in . in tutti i record del db? sono 30.000 record a mano è un po' difficile
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  9. #9
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Crea un nuovo campo decimal e fai una query di update che inserisca nel nuovo campo il valore del varchar con le virgole dei decimali sostituiti da punto

  10. #10
    avete per caso qualche esempio da postare?
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

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.