Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    problema con mysql e calcoli in euro

    Ho un problema con un db esistente che esegue semplici calcoli in euro.
    Per l'euro ho sempre utilizzato il campo float ma ora ho dei problemi di "troncamento" dei decimali.
    In particolare nel calcolo di una commissione percentuale a volte il valore della commissione mi viene salvato con i decimali a volte no.


    Esempio
    un prodotto di 978 con commissione al 10% mi salva una commissione (calcolata in php) di 97,8 eur mentre invece un prodotto di 1222 eur con commissione al 10% mi salva una commissione di 122 al posto che 122,2 euro!!
    Qualcuno sa dirmi perchè?

    ho usato un tipo di campo (float) errato per gli euro?
    grazie 1000!

    Osvaldo
    http://www.popvision.com

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    Quando definisci un float devi specificare anche quante cifre deve contenere quel campo.
    quindi fai un FLOAT (M,D) dove M è il numero di cifre prima della virgola e D il numero di cifre che viene dopo

  3. #3

    re

    grazie , credo di aver capito
    In realtà ho trovato online spiegazioni molto più complesse a questo tipo di problema ma spero che questa sia una soluzione semplice ed efficace!
    Chiedo solo, in mysql front quando definisco il tipo di campo e dal menù a tendina scelgo float poi sotto nel campo length devo scrivere la lunghezza del campo in euro ? esempio
    (10,2)
    Comprese le parentesi?
    grazie mille

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120

    Re: re

    [supersaibal]Originariamente inviato da osviweb
    In realtà ho trovato online spiegazioni molto più complesse [/supersaibal]
    Probabilmente si riferivano al fatto che quando si lavora con campi a virgola mobile (tipo float) può capitare che la precisione sui decimali vada a farsi benedire.
    E' un problema legato al modo in cui vengono rappresentati i numeri in memoria, non è colpa di linguaggi o database e non puoi farci niente se non arrotondare

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    @osviweb Si è li che devi specificare quei valori

  6. #6

    Re

    Grazie a tutti per i preziosi suggerimenti.
    Proverò a modificare questo attributo del campo float.
    Spero non faccia casini ai dati già inseriti a database.
    Se a qualcuno interessa l'articolo a cui mi riferivo, a riguardo dei problemi sui decimali con gli euro è:
    http://www.icosaedro.it/php/calcoli-monetari.html
    thks
    ciao

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.