Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/08/2006, 01h42   #1
Invité régulier
 
Inscription : mai 2003
Messages : 23
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 23
Points : 6
Points : 6
Par défaut Enlever les chiffres apres Décimales (29.72 -> 29)

Bonjours, je recherche une solution afin d'enlever d'un nombre les chiffres après la décimale.

Exemple:
29.72 doit donner 29
32.22 doit donner 32

Attention: Ce nombre ne doit pas être arrondis, mais que conservé les chiffre avant la virgule ! (Comme un peux un int)

Merci
unclebob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 01h48   #2
Membre Expert
 
Homme Arnaud
Développeur .NET
Inscription : avril 2006
Messages : 1 343
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : avril 2006
Messages : 1 343
Points : 1 504
Points : 1 504
bah un peu violent :

Code :
1
2
 $nb = explode('.', $nombre); //on explose la chaine au niveau du point
$entier = $nb[0]; //on recupere la premiere caine, situee avant le point
bien sur echo $nb[0] est plus efficace que de laffecter ds une autre variable niveau temps de traitement serveur
Arnard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 02h20   #3
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Il existe aussi la solution RegEx :

Code :
1
2
preg_match('#([0-9])+\.[0-9]#',$nombre,$recup);
echo $recup[1];
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 10h37   #4
Invité régulier
 
Inscription : janvier 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 13
Points : 8
Points : 8
Par défaut avec round() non?

Ou le mieux, tu demande un arrondissement du nombre decimal en faisant appel à la fonction round(). Elle va te retourner un joli petit entier.
forward11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 10h41   #5
Membre régulier
 
Inscription : décembre 2004
Messages : 121
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 121
Points : 93
Points : 93
Salut,

Tu peu aussi faire $nbre=(int)$nbre;
DiGiTAL_MiDWAY est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 10h52   #6
Expert Confirmé
 
Avatar de yiannis
 
Inscription : septembre 2005
Messages : 1 499
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : septembre 2005
Messages : 1 499
Points : 2 563
Points : 2 563
tu as aussi la fonction number_format()

as toi de trouver la solution qui te convient le mieux dans toutes celles ci
__________________
"Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN
yiannis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 11h08   #7
Nouveau Membre du Club
 
Développeur Web
Inscription : février 2006
Messages : 68
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2006
Messages : 68
Points : 29
Points : 29
Par défaut HaHem :x

Bonjour!

Ainsi que:
  • floor();
  • cell();

En bref, les bonnes vieilles fonction mathématique éxistant dans la plus part des langages de programmation ^^.

Bonne continuation!
Just est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 15h17   #8
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
round() n'est pas trop la solution puisque ça arrondira à l'entier supérieur et c'est ce qu'il veut pas. floor peut faire l'affaire puisque ca arrondit à l'entier inférieur ce qui correspond obligatoirement à la partie entière.

Pour voir des exemples avec la fonction number_format comme c'est dit plus haut : Comment formater un nombre décimal pour l'affichage ?
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 17h14   #9
Invité(e)
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Par défaut d'ou vienne tes valeurs

Citation:
Envoyé par unclebob
Bonjours, je recherche une solution afin d'enlever d'un nombre les chiffres après la décimale.

Exemple:
29.72 doit donner 29
32.22 doit donner 32

Attention: Ce nombre ne doit pas être arrondis, mais que conservé les chiffre avant la virgule ! (Comme un peux un int)

Merci
si tes valeurs viennent d'une requete sql , formatte les avec ca

select elt(LOCATE('.','99.1'),'99.1',substring('9.1',1,1),substring('99.1',1,2))

en sachant que 99.1 et 99.1 est ton champ

  Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 17h18   #10
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Non, vraiment, ce n'est pas compliqué... Tu as deux solutions :
Code :
1
2
$var2 = (int)$var1; // un cast classique
$var2 = intval($var1); // mon favori
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h15.


 
 
 
 
Partenaires

Hébergement Web