Faire la difference entre un chiffre entier et un chiffre avec virgule

cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013 - 18 juil. 2005 à 21:35
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 20 juil. 2005 à 08:39
hey,
si le resultat de deux variables est :
$data1 = 28.9856;
$data2 = 29;

si je veux afficher que la variable ayant un chiffre sans virgule comment je fais pour contrôler les variables


joebuz

33 réponses

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
18 juil. 2005 à 21:44
if(is_int($data1))

{

echo '$data 1 est un entier';

}

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013
19 juil. 2005 à 17:19
marche pas

$data1 = 28569;
$data2 = 28.569;

if(is_int($data1)){
echo ' '.$data1 .'est un entier
';}
else{
echo ' '.$data1 .'est un nombre a virgule
';}
if(is_int($data2)){
echo ' '.$data2 .'est un entier
';}
else{
echo ' '.$data2 .'est un nombre a virgule
';}

affichage :
28569 est un nombre à virgule
28.569 est un nombre à virgule


joebuz
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
19 juil. 2005 à 17:22
Bah essaie la solution inverse avec is_float() alors (cette fonction retourne true si c'est un nombre décimal)

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
19 juil. 2005 à 17:30
heu...



Perso moi, ca marche tres bien (j'ai copie colle ton code parce que ca m'intriguait).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
19 juil. 2005 à 17:33
mdr, je me disais aussi...

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
19 juil. 2005 à 17:34
joebuz > pas sympa d'inventer des bugs pour nous montrer qu'on a pas trouvé la solution (je déconne bien sûr ;-) )

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013
19 juil. 2005 à 17:43
non plus avec float

data1 : 229710
data2 : 22.9710

if(is_float($data1)){
echo ' '.$data1.'est un nombre a virgule
';}
else{
echo ' '.$data1 .'est un entier
';}
if(is_float($data2)){
echo ' '.$data2 .'est un nombre a virgule
';}
else{
echo ' '.$data2 .'est un entier
';}

affichage :
22.971est un nombre a virgule
229710est un nombre a virgule


joebuz
0
cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013
19 juil. 2005 à 17:45
voila mon script en entier...

$sql2 = "SELECT nom,prenom,age FROM W_membres WHERE numinsc='$qui'";
$req2 = mysql_query($sql2) or die ('Erreur SQL ! '. $sql2 . mysql_error());
if($data2 = mysql_fetch_array($req2)){
$nom = $data2['nom'];
$prenom = $data2['prenom'];
$date2 = $data2['age'];}


$age2 = floor(date(Ymd) - $date2);
//echo "age2 = ".$age2."
";


$age = $age2/10000;
//echo "age = ".$age."
";


if(is_float($age)){
echo ' '.$age .'est un nombre a virgule
';}
else{
echo ' '.$age .'est un entier
';}
if(is_float($age2)){
echo ' '.$age2 .'est un nombre a virgule
';}
else{
echo ' '.$age2 .'est un entier
';}


joebuz
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
19 juil. 2005 à 17:49
il doit considérer ça comme une string surement, essaie avec
"is_string()" comme fonction, si ça retourne true c'est que c'est une
string, enfin bon après un floor pourquoi ça serait pas converti en
int...

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013
19 juil. 2005 à 17:52
ca doit venir de ma page j'ai essayé les deux is_int() et is_float() sur une page d'essai et ca marche très très bien !


joebuz
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
19 juil. 2005 à 17:58
essaye plutot avec gettype ()

http://de2.php.net/manual/en/function.gettype.php

ce serait plus simple, tu auras directement le type.



Mais cÄ'est curieux en effet.



g essaye ca et ca marche tjrs :



<?php

$age2 = '25000';

$age = $age2/10000;

//echo "age = ".$age."
";



if(is_float($age)){

echo ' '.$age .'est un nombre a virgule
';}

else{

echo ' '.$age .'est un entier
';}

if(is_float($age2)){

echo ' '.$age2 .'est un nombre a virgule
';}

else{

echo ' '.$age2 .'est un entier
';}



?>
0
cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013
19 juil. 2005 à 17:58
en fait non ca marche que quand c'est moi qui attribue les valeurs aux variables

si je met dans le script :
$data1 = 250000;
$data2 = 25;
ca marche
mais si je met le script que je vous ai montrer ca marche pas

j'essaye avec is_string() et je vous dis ca
joebuz
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
19 juil. 2005 à 18:00
ok, si c'est ni is_int() ni is_float() ça sera surement ça...

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013
19 juil. 2005 à 18:02
if(is_string($age)){
echo ' '.$age .'est une string
';}
else{
echo ' '.$age .'n est pas une string
';}


if(is_string($age2)){
echo ' '.$age2 .'est une string
';}
else{
echo ' '.$age2 .'n est pas une string
';}

affichage :

$age 22.971 n est pas une string
$age 2229710 n est pas une string


joebuz
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
19 juil. 2005 à 18:04
bon bah utilise gettype pour savoir quel type c'est enfin bon ça craint...

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
19 juil. 2005 à 18:05
bon une solution vaseuse si vraiment t'y arrive pas : tu fais un strpos
pour savoir si y'a un point dans la valeur de la variable, si oui bah
c'est une variable décimale...
<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013
19 juil. 2005 à 18:08
avec gettype :

$type = gettype($age);
$type2 = gettype($age2);

type : double
type2 : double

avec des nombres entier ou decimal


joebuz
0
cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013
19 juil. 2005 à 18:12
reponse strpos
bah oui mais non j'utilise cette fonction pour contrôler le point d'une addresse e-mail
et c'est ce que j'ai essayé en premier avant de venir sur le forum, marche pas non plus, j'ai essayé egalement avec preg_match() ([0-9]/. )...... marche pas non plus


joebuz
0
cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013
19 juil. 2005 à 18:14
AU SECOURS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


joebuz
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
19 juil. 2005 à 18:15
bah t'as la fonction is_double() mais c'est un alias de is_float() bref is_float() devrait fonctionner...

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
Rejoignez-nous