Recoder des functions toutes faites
Résolu/Fermé
anthonyr_25
Messages postés
165
Date d'inscription
mercredi 5 janvier 2022
Statut
Membre
Dernière intervention
6 juillet 2022
-
Modifié le 18 avril 2022 à 21:07
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 - 19 avril 2022 à 21:03
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 - 19 avril 2022 à 21:03
A voir également:
- Recoder des functions toutes faites
- Mouse recoder - Télécharger - Divers Utilitaires
- Télécharger microsoft excel - advanced excel formulas & functions gratuite - Télécharger - Tableur
8 réponses
jordane45
Messages postés
38472
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 mai 2025
4 744
18 avril 2022 à 21:09
18 avril 2022 à 21:09
Bonjour,
Tu peux stocker ton nombre dans un array
Trouver le premier chiffre après le séparateur décimal ( via une boucle et un if/else )
Vérifier si il est supérieur ou égal à 5 (
Si oui, ajouter 1 au chiffre qui se situe avant le séparateur décimal.
Retourner le nombre composé de tous les chiffres qui se trouvent avant le séparateur décimal.
Sans passer par un array, en utilisant les fonctions de chaines de caractères, tu peux "spliter" ( explode ) la chaine au niveau du caractère séparateur, et utiliser du substr pour prendre les chiffres qui t'intéressent ( au lieu de faire des boucles et des if/else de ma solution précédente )
sans utiliser de functions toute faites bien sur
Tu peux stocker ton nombre dans un array
Trouver le premier chiffre après le séparateur décimal ( via une boucle et un if/else )
Vérifier si il est supérieur ou égal à 5 (
Si oui, ajouter 1 au chiffre qui se situe avant le séparateur décimal.
Retourner le nombre composé de tous les chiffres qui se trouvent avant le séparateur décimal.
Sans passer par un array, en utilisant les fonctions de chaines de caractères, tu peux "spliter" ( explode ) la chaine au niveau du caractère séparateur, et utiliser du substr pour prendre les chiffres qui t'intéressent ( au lieu de faire des boucles et des if/else de ma solution précédente )
jordane45
Messages postés
38472
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 mai 2025
4 744
19 avril 2022 à 17:22
19 avril 2022 à 17:22
<?php function fn_intval($var){ $intNum = ""; $firstDecim = ""; $array = (string)$var; if ($var != null){ for ($i=0; $i < strlen($array); $i++) { if ($array[$i] == "." | $array[$i] == ","){ $firstDecim = $array[$i+1]; if($firstDecim >= 5){ $intNum ++; } break; }else{ $intNum .= $array[$i]; } } } else { return 1; } return $intNum; } $a = 12.89; echo fn_intval($a) . "<br>"; $a = 12.42; echo fn_intval($a) . "<br>"; $a = 19.80; echo fn_intval($a) . "<br>";
anthonyr_25
Messages postés
165
Date d'inscription
mercredi 5 janvier 2022
Statut
Membre
Dernière intervention
6 juillet 2022
6
19 avril 2022 à 21:03
19 avril 2022 à 21:03
merci, je te revaudrais sa ;) ... fin non je peux pas ... bha du coup juste merci tu est d'une aide précieuse !
anthonyr_25
Messages postés
165
Date d'inscription
mercredi 5 janvier 2022
Statut
Membre
Dernière intervention
6 juillet 2022
6
Modifié le 18 avril 2022 à 22:18
Modifié le 18 avril 2022 à 22:18
Yo Jordane, je te remercie pour ta réponse je vais tenter ta première solution mais la deuxième malheureusement il me semble que substr ou split c'est compter comme des functions toute faites .. je sais même pas si j'ai le droit d'utiliser push()
Je te redit ou j'en suis ;) dans quelques minutes
Je te redit ou j'en suis ;) dans quelques minutes
anthonyr_25
Messages postés
165
Date d'inscription
mercredi 5 janvier 2022
Statut
Membre
Dernière intervention
6 juillet 2022
6
18 avril 2022 à 22:37
18 avril 2022 à 22:37
Même en utilisant des functions toutes faites je n'y arrive pas :crying:
sa me sort sa :
<?php /* include 'strlen.php'; */ function fn_intval($var){ if ($var != null){ $array[] = $var; for ($i=0; $i < count($array); $i++) { print_r($array); echo $array[$i]; /* $array[] = $i; */ /* print_r($array); */ } } else { return 1; } } $var = 12.589; echo fn_intval($var); ?>
sa me sort sa :
Array ( [0] => 12.589 ) 12.589
jordane45
Messages postés
38472
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 mai 2025
4 744
Modifié le 18 avril 2022 à 23:34
Modifié le 18 avril 2022 à 23:34
Regarde donc ce que contient la variable
À partir de là qu'est-ce que tu peux en conclure ?
exemple :
$var[0]
À partir de là qu'est-ce que tu peux en conclure ?
exemple :
$var = "12.89"; for ($i=0;$i < strlen($var);$i++){ echo "-".$var[$i]; }
anthonyr_25
Messages postés
165
Date d'inscription
mercredi 5 janvier 2022
Statut
Membre
Dernière intervention
6 juillet 2022
6
>
jordane45
Messages postés
38472
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 mai 2025
18 avril 2022 à 23:51
18 avril 2022 à 23:51
déjà j'ai pas eu l'idée de les mettres entre quottes, est ce que sa : $array = "\"".$var."\""; sa marche pour transformer une suite de nombres (exemple : $var = 12.89;) en une string ?
jordane45
Messages postés
38472
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 mai 2025
4 744
>
anthonyr_25
Messages postés
165
Date d'inscription
mercredi 5 janvier 2022
Statut
Membre
Dernière intervention
6 juillet 2022
18 avril 2022 à 23:54
18 avril 2022 à 23:54
Regarde l'exemple que je t'ai donné dans mon message précédent
anthonyr_25
Messages postés
165
Date d'inscription
mercredi 5 janvier 2022
Statut
Membre
Dernière intervention
6 juillet 2022
6
>
jordane45
Messages postés
38472
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 mai 2025
Modifié le 19 avril 2022 à 00:06
Modifié le 19 avril 2022 à 00:06
j'en conclus en tout cas qu'il y as 5 index qui comporte deux caractères chacun
ou 10 index qui comporte un caractère chacun ...
je tente quelque chose comme sa ducoup :
ou 10 index qui comporte un caractère chacun ...
je tente quelque chose comme sa ducoup :
function fn_intval($var){ $array = "\"".$var."\""; if ($var != null){ for ($i=0; $i < strlen($var); $i++) { echo $var[$i]; if ($var[$i] == "." | $var[$i] == ","){ echo "yess"; if($var[$i]+1 == "5" | $var[$i]+1 == "5"){ echo "yes"; echo $var + 1; } } } } else { return 1; } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
anthonyr_25
Messages postés
165
Date d'inscription
mercredi 5 janvier 2022
Statut
Membre
Dernière intervention
6 juillet 2022
6
19 avril 2022 à 00:10
19 avril 2022 à 00:10
je tien quelque chose la :
sa me sort : 13.89 ^^ donc c'est parfait j'ai juste à supprimer ce qu'il y as après le .
function fn_intval($var){ $array = "\"".$var."\""; if ($var != null){ for ($i=0; $i < strlen($array); $i++) { if ($array[$i] == "." | $array[$i] == ","){ echo "yess"; if($array[$i+1] > "5" | $array[$i+1] > "5"){ echo "yes"; echo $var + 1; } } } } else { return 1; } }
sa me sort : 13.89 ^^ donc c'est parfait j'ai juste à supprimer ce qu'il y as après le .
anthonyr_25
Messages postés
165
Date d'inscription
mercredi 5 janvier 2022
Statut
Membre
Dernière intervention
6 juillet 2022
6
19 avril 2022 à 00:53
19 avril 2022 à 00:53
j'arrive pas a supprimer les chiffres après la virgule ou alors d'afficher que les chiffres avant la virgule..
jordane45
Messages postés
38472
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 mai 2025
4 744
19 avril 2022 à 11:51
19 avril 2022 à 11:51
Commence déjà par revoir les bases des OU / ET .. en PHP
https://www.php.net/manual/fr/language.operators.logical.php
Ensuite intéresse toi à la concaténation de variables https://www.php.net/manual/fr/language.operators.string.php
et à la sortie des boucles https://www.php.net/manual/fr/control-structures.break.php
https://www.php.net/manual/fr/language.operators.logical.php
Ensuite intéresse toi à la concaténation de variables https://www.php.net/manual/fr/language.operators.string.php
et à la sortie des boucles https://www.php.net/manual/fr/control-structures.break.php
anthonyr_25
Messages postés
165
Date d'inscription
mercredi 5 janvier 2022
Statut
Membre
Dernière intervention
6 juillet 2022
6
>
jordane45
Messages postés
38472
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 mai 2025
19 avril 2022 à 14:39
19 avril 2022 à 14:39
excuse moi je suis parti me coucher hier, oui les OU / ET je connais d'ailleur je l'utilise et il marche pareil pour la concaténation et la sortie des boucles mais c'est vrai que pour la sortie des boucles j'utilise pas de break à la sortie des foreach
jordane45
Messages postés
38472
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 mai 2025
4 744
>
anthonyr_25
Messages postés
165
Date d'inscription
mercredi 5 janvier 2022
Statut
Membre
Dernière intervention
6 juillet 2022
19 avril 2022 à 14:46
19 avril 2022 à 14:46
les OU / ET je connais, pourtant .. dans ton code ..ils sont mal écrits...
anthonyr_25
Messages postés
165
Date d'inscription
mercredi 5 janvier 2022
Statut
Membre
Dernière intervention
6 juillet 2022
6
>
jordane45
Messages postés
38472
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 mai 2025
Modifié le 19 avril 2022 à 14:57
Modifié le 19 avril 2022 à 14:57
ha mince, le " ou = | " et le " et = & " c'est sa non ? parcequ'en tout cas il fonctionne en les écrivants comme sa
je viens de voir le manual il en mette deux eux donc ou = || / et = && mais bon sa marche avec un seul mais d'accord du coup il faut en mettre deux
je viens de voir le manual il en mette deux eux donc ou = || / et = && mais bon sa marche avec un seul mais d'accord du coup il faut en mettre deux
jordane45
Messages postés
38472
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 mai 2025
4 744
>
anthonyr_25
Messages postés
165
Date d'inscription
mercredi 5 janvier 2022
Statut
Membre
Dernière intervention
6 juillet 2022
19 avril 2022 à 15:08
19 avril 2022 à 15:08
tu n'as pas lu le lien que je t'ai donné !
Tu n'utilises pas les opérateurs de comparaison, mais les opérateurs d'affectation bits à bits
Un exemple pour expliquer la différence
Tu n'utilises pas les opérateurs de comparaison, mais les opérateurs d'affectation bits à bits
Un exemple pour expliquer la différence
array(2) { ["A"]=> int(10) ["B"]=> bool(false) }
$a & $b
int(0)
$a && $b
bool(false)
$a | $b
int(10)
$a || $b
bool(true)
-----------------------------------------
array(2) { ["A"]=> int(10) ["B"]=> int(10) }
$a & $b
int(10)
$a && $b
bool(true)
$a | $b
int(10)
$a || $b
bool(true)
-----------------------------------------
array(2) { ["A"]=> int(10) ["B"]=> string(4) "test" }
$a & $b
Warning: A non-numeric value encountered in C:\laragon\www\tt\index.php on line 8
int(0)
$a && $b
bool(true)
$a | $b
Warning: A non-numeric value encountered in C:\laragon\www\tt\index.php on line 12
int(10)
$a || $b
bool(true)
anthonyr_25
Messages postés
165
Date d'inscription
mercredi 5 janvier 2022
Statut
Membre
Dernière intervention
6 juillet 2022
6
19 avril 2022 à 15:19
19 avril 2022 à 15:19
je vois donc sa marche mais ce n'est pas le résultat que je veux cars sa me donne le bon résultat pour ce que je veux faire mais ce n'est pas adapté...
d'accord j'utilise les double alors donc : || / &&
d'accord j'utilise les double alors donc : || / &&
anthonyr_25
Messages postés
165
Date d'inscription
mercredi 5 janvier 2022
Statut
Membre
Dernière intervention
6 juillet 2022
6
19 avril 2022 à 15:22
19 avril 2022 à 15:22
j'en ait mis deux du coup
en revanche je n'arrive toujours pas à mettre mes valeurs suppérieurs à $array[$i] == "." dans ma variable $resu
$resu = ""; if($array[$i+1] > "5" || $array[$i+1] > "5"){ $var .= 1; $resu .= $array[$i-1]; if($array[$i] == "."){ break; } echo $resu; } else if ($array[$i+1] < "5" || $array[$i+1] < "5"){ echo $var; }
en revanche je n'arrive toujours pas à mettre mes valeurs suppérieurs à $array[$i] == "." dans ma variable $resu
18 avril 2022 à 22:57