Question intéressante.
Je ne choisirais pas réellement float dans l'environnement mysql. Trop de problèmes dans le passé avec la précision avec ce type de données.
Pour moi, le choix serait entre int
et decimal(18,4)
.
J'ai vu des exemples réels d'entiers utilisés pour représenter des valeurs à virgule flottante. Les composants internes des tables de données JD Edwards font tous cela. Les quantités sont généralement divisées par 10000. Même si je suis sûr que c'est plus rapide et plus petit dans le tableau, cela signifie simplement que nous devons toujours CAST les ints en une valeur décimale si nous voulons faire quoi que ce soit avec eux, en particulier la division.
Du point de vue de la programmation, je préférerais toujours travailler avec decimal
pour le prix (ou money
dans les SGBDR qui le supportent).