|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Technicien maintenance Inscription : août 2011 Messages : 2 ![]() |
Bonjour
Voila je développe des petites applications en PHP en essayant d'éviter le javascript car mes connaissances sont plus que limiter sur ce domaine, mais la j'ai pas le choix, je suis obligé d'insérer un script mais ne fonctionne pas a 100%, j'ai une erreur par moment sur le résultat et le nombre de chiffres après la virgule que je n'arrive pas a limiter a 2 J'ai testé plusieurs scripts mais aucun succès, celui la est celui qui fonctionne le mieux pour mon besoin C'est pour un choix de paiement, une variable en PHP est récupérer via un POST, ensuite, il y a 3 champs a remplir pour le paiement cb, especes et cheque et une différence a payer ou rembourser exemple, la variable en PHP 594,65 ( montant a regler ) Test 1 => champs cb 200 le champs différence indique 394.65 => OK Test 2 => champs especes 600 => reste -5.350000000000023 => Pas bon trop de chiffres apres la virgule 2 eme exemple, probleme de resultat La variable en php 35.88 champs espece 35.90 et le champs difference -0.01999999999999602 => Pas bon, il devrait mettre 0.02 Voici le code Code :
Merci Didier |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Matilin TorreÉtudiant Inscription : juin 2010 Messages : 679 ![]() |
Salut,
c'est un problème lié à la représentation des nombres à virgule flottante. Tu aurais le même problème en PHP, et avec n'importe quel langage qui utilise la virgule flottante. Si tu as besoin d'une grande précision (et je pense que c'est le cas), fais tes calculs en PHP avec l'extension BCMath. Tu peux utiliser JavaScript pour donner à l'utilisateur un aperçu de ce qui sera fait, en ajoutant une note explicative pour lui indiquer que ce ne sont pas les vrais résultats. Il est possible de trouver des bibliothèques de calcul de précision pour JavaScript, mais ce n'est pas une bonne idée : faire les traitements côté client n'est jamais sûr.
__________________
Disposition de clavier ergonomique française : Bépo |
|
|
00
|
|
|
#3 |
|
Membre éclairé
![]() F5(){F5} Inscription : avril 2008 Messages : 256 ![]() |
salut,
tu peux aussi :
|
|
|
10
|
|
|
#4 |
|
Invité de passage
![]() Technicien maintenance Inscription : août 2011 Messages : 2 ![]() |
Merci pour vos conseils, je vais essayer de voir ca
|
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Matilin TorreÉtudiant Inscription : juin 2010 Messages : 679 ![]() |
C'est très juste, j'avais oublié. La convention avec les sites marchands, c'est d'enregistrer les prix en unités basses (centimes).
__________________
Disposition de clavier ergonomique française : Bépo |
|
|
00
|
|
|
#6 |
![]() ![]() |
Bonjour,
petite fonction javascript (ici) ou juste : toFixed() qui , contrairement à ce que j'avais lu, ne tronque pas, mais arrondi bien ... 12.05499 -> 12.05 12.055 -> 12.05 12.05501 -> 12.06
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Boris Dessysans emploi Inscription : décembre 2010 Messages : 867 ![]() |
Je te recommande un de mes vieux poste : http://www.developpez.net/forums/d10...t/#post5879980
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com