Page 1 sur 1

Formatage monétaire

Posté : 30 avr. 2005, 23:50
par albat
Après les dates, le pognon ! :lol:

J'ai dans ma base MySQL, un champ prix de type Decimal(6,2) unsigned.

Je voudrais que :
17.00 :arrow: 17
17.50 :arrow: 17,50

Vous l'dites si j'suis compliqué, hein ? :wink:

Posté : 01 mai 2005, 00:08
par ioup
salut ! tu voudrais ça à l'affichage sur ta page php ?

un str_replace() fonctionnerait pas ? :p

c'est juste une idée au passage :p

Posté : 01 mai 2005, 00:19
par albat
C'est effectivement pour un affichage.

str_replace() ?...
Mais, évidemment !!! :shock:

Posté : 01 mai 2005, 00:28
par albat
C'est pas hyper élégant, mais ça marche.
function virgule($chaine)
{ $chaine = str_replace(".00", "", $chaine);
  $chaine = str_replace(".", ",", $chaine);
  return $chaine;
}
Au départ, j'avais pensé aux regexp.
D'où mon appel à l'aide... ;)

Posté : 01 mai 2005, 00:28
par ioup
pas convaincu ? un probleme ?

ça donnerait ça par exemple :)
<?

$montant = "17.00";
$montant_sans_00 = str_replace('.00',' ',$montant);
echo "$montant_sans_00";

$montant = "17.50";
$montant_sans_point = str_replace('.',',',$montant);
echo "$montant_sans_point";

?>
bon courage !

Posté : 01 mai 2005, 00:29
par ioup
c'est pas optimale je l'avoue mais bon :p ça fonctionne ! ^^

Posté : 01 mai 2005, 00:39
par albat
Bien sûr, ça fonctionne.
Ton code est d'ailleurs quasi-identique au mien.
Mais je ne trouve pas ça optimale comme façon de faire.

Enfin, bon. À cette heure-ci, l'essentiel, c'est que ça marche ! :lol:

Encore merci et bonne nuit.

Posté : 01 mai 2005, 04:17
par Gentoo Warrior
Enfin, bon. À cette heure-ci, l'essentiel, c'est que ça marche ! :lol:
Encore merci et bonne nuit.
Pendant que d'autre vont dormirent moi j'étudie :lol:
Au départ, j'avais pensé aux regexp.

par exemple, comme ceci :
echo preg_replace(array("(\.[0-9]$)","(\.)"),array("\${0}0",","), $nbr);
pour le fun, avec le symbole de l'euro.
echo preg_replace(array("(\.[0-9]$)","(\.)","($)"),array("\${0}0",","," €"), $nbr);
je tiens a remercier l'auteur de ces deux excellents tutoriaux, qui mon fait découvrir et apprendre ces petites bêtes que sont les expressions régulières. voila merci DAMIEN :wink:

Posté : 01 mai 2005, 08:19
par Cyrano
Tu as la fonction number_format() qui peut faire ça, les exemples du manuel :
<?php

$nombre = 1234.56;
// Notation anglaise (par défaut)
$english_format_number = number_format($nombre); // 1,234.56

// Notation française
$nombre_format_francais = number_format($nombre, 2, ',', ' ');
// 1 234,56

// Notation anglaise sans séparateurs des centaines
$english_format_number = number_format($number, 2, '.', '');
// 1234.57

?> 
J'ai utilisé ça il y a peu de temps, ça fonctionne plutôt bien :)

Posté : 01 mai 2005, 10:17
par albat
Great, boys !

Merci :wink:

Posté : 01 mai 2005, 10:23
par Cyrano
Waow, j'ai participé à aider albat , j'y crois pas O:)