convertisseur

Eléphanteau du PHP | 30 Messages

31 août 2005, 15:29

Hello à tous,
je n'arrive pas à convertir des chiffres dans une requète sql en n'affichant que 2 chiffre après la virgule.

bon je débute, soyez indulgent
$taux_change = "40.3399"
$fr_eur = number_format($fr_eur, 2); // le chiffre "2" signifie le nombre de chiffre après la virgule
$fr_eur = ereg_replace(",","",$fr_eur);

if ($fr_eur == 1) {
		mysql_query("UPDATE tarif SET
		basa_eur = basa_fr/'$taux_change',
		bara_eur = bara_fr/'$taux_change',
		baschd_eur = baschd_fr/'$taux_change',
		barchd_eur = barchd_fr/'$taux_change',
		basinf_eur = basinf_fr/'$taux_change',
		barinf_eur = barinf_fr/'$taux_change'
		WHERE id = $id");
		}
Et vous savez pas quoi, j'obtient TOUS les chiffres après la virgule
Merci de votre aide

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

31 août 2005, 15:34

ben tu ne formates pas les valeurs calculées dans la requête c'est normal :)
regarde ROUND() par exemple : http://dev.mysql.com/doc/mysql/fr/mathe ... tions.html

et pas besoin d'utiliser ereg_replace juste pour remplacer une virgule, utilise plutôt str_replace

Eléphanteau du PHP | 30 Messages

31 août 2005, 15:55

:roll: Merci à toi Ô ouckileou :roll:
comme d'hab, tu me sauves du pétrin
A+
:P :P :P

Eléphanteau du PHP | 30 Messages

03 sept. 2005, 06:55

Donc il y a plusieur solutions pour faire les arrondis :
celles que j'ai retenues à mon niveau (débutant) sont au nombre de deux :

1) Côté PHP (en sachant que les nombres stockés dans la db ont X chiffres après la virgule)
Et en sachant que le type du champs 'nombre' est CHAR OU VARCHAR.
<?
echo round ($nombre,0); // 0 chiffres après la virgule
?>
2) Côté SQL,
Modifier le type du champs 'nombre'en DOUBLE et la valeur en 'X,Y'
--> X = nombre de chiffre de l'entier
--> Y = nombre de chiffre après la virgule

Les 2 solutions arrondissent en respectant les règles mathématiques de bases (arrondi à l'entier supérieur si la décimale est supérieur à cinq)
Personnelement, j'ai opté pour la 2ème solutions en sachant que mes résultats doivent absolument être arrondis,
mais aussi pour ne pas avoir à taper 'echo round' à chaque fois.
Donc pour moi, et mon sens de débutant, j'ai trouvé la solution.
Merci au participant du forum pour m'avoir aider à trouver la solution dans la doc.