Partage
  • Partager sur Facebook
  • Partager sur Twitter

pow()

Not a number ?

Anonyme
    29 août 2006 à 15:14:54

    Bonjour à tous,

    Voilà, j'ai un problème assez génant et je n'y comprends vraiment plus rien.
    Donc j'aimerais savoir si une racine est possible. Pour cela j'utilise pow(), si il me retourne NAN c'est que c'est impossible sinon, c'est que c'est possible.
    Bref rien de très compliqué, mais pas moyen de faire la condition, c'est comme si ma valeur retournée n'était pas égal à NAN mais elle l'est j'en suis sûr.


    $return=pow(-5,0.5); // Impossible
    if($return=='NAN')
    {
    $return=0;
    }

    Dans mon code ci dessus, $return devrait être égal à 0 mais non il est égal à NAN. Pourquoi ne veut t'il pas executer ce qu'il y a dans ma condition.

    Moi j'y comprends plus rien :x

    Merci des vos réponses ;)
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      29 août 2006 à 15:30:55

      Pour teste si la racine d'un nombre existe, c'est plus simple (et plus rapide) de tester si le nombre est positif que d'essayer de la calculer.
      Ensuite, pow ne retourne pas NAN mais FALSE si l'opération est impossible dans les versions de PHP au-delà de la 4.0.6
      • Partager sur Facebook
      • Partager sur Twitter
        29 août 2006 à 15:31:11

        <?php
        $return=pow(-2,2.2);
        if(!false==$return)
        {
        echo $return;
        }
        else
        {
        echo 'Impossible';
        }
        ?>
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          29 août 2006 à 15:34:47

          gui223> Oui j'ai aussi lu la doc, mais il ne me renvoie pas false mais NAN.

          Bison> Même problème, il m'écrit: NAN au lieu de impossible :x
          • Partager sur Facebook
          • Partager sur Twitter
            29 août 2006 à 15:36:59

            T'as quelle version de php là ?
            • Partager sur Facebook
            • Partager sur Twitter
              29 août 2006 à 15:38:07

              <?php
              $var = pow(-2,2.2);
              if ($var === FALSE)
              {
               echo 'IMPOSSIBLE';
              }
              else
              {
               echo $var;
              }
              ?>
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                29 août 2006 à 15:38:31

                Version 5.1.4

                Edit: pl00b > Même problème :o
                • Partager sur Facebook
                • Partager sur Twitter
                  29 août 2006 à 15:41:45

                  Citation : Pl00b

                  <?php
                  $var = pow(-2,2.2);
                  if ($var === FALSE)
                  {
                   echo 'IMPOSSIBLE';
                  }
                  else
                  {
                   echo $var;
                  }
                  ?>

                  NON, pas avec 3 =
                  Avec 2 = oui
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    29 août 2006 à 15:44:38

                    Dans les deux cas, fonctionne pas :(
                    Mais comment se fait t'il quand quand j'affiche $return, ca me mette NAN et que une ligine plus bas, je tape if($return=='NAN'), ca passe aps dans la condition o_O
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      29 août 2006 à 15:44:43

                      J'ai réussi comme ça:

                      $return=pow(-5,0.5);
                      if($return==NAN)
                      {
                      echo $return;
                      $return=0;
                      }
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Anonyme
                        29 août 2006 à 15:48:15

                        erf, désolé mais ca marche pas non plus -_-
                        • Partager sur Facebook
                        • Partager sur Twitter
                          29 août 2006 à 20:27:01

                          Citation : Bison

                          Citation : Pl00b

                          <?php
                          $var = pow(-2,2.2);
                          if ($var === FALSE)
                          {
                           echo 'IMPOSSIBLE';
                          }
                          else
                          {
                           echo $var;
                          }
                          ?>


                          NON, pas avec 3 =
                          Avec 2 = oui



                          0ui enfin ca reviens au même que :

                          <?php
                          $var = pow(-2,2.2);
                          if ($var == (bool)FALSE)
                          {
                           echo 'IMPOSSIBLE';
                          }
                          else
                          {
                           echo $var;
                          }
                          ?>
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Anonyme
                            30 août 2006 à 16:20:37

                            Plus d'idées ?

                            Bizarre bizarre tout ca :p
                            • Partager sur Facebook
                            • Partager sur Twitter
                              30 août 2006 à 16:26:12

                              Citation : Pl00b

                              0ui enfin ca reviens au même que :

                              <?php
                              $var = pow(-2,2.2);
                              if ($var == (bool)FALSE)
                              {
                               echo 'IMPOSSIBLE';
                              }
                              else
                              {
                               echo $var;
                              }
                              ?>

                              Non c'est l'inverse :p
                              if($var === false) est équivalent à if((bool) $var == false)

                              Comme apparement on a du mal à tester si c'est un NAN, pourquoi ne pas tester si c'est un vrai nombre ?

                              $var = pow(-5, 0.5);
                              if((int) $var > 0)
                              echo $var;
                              else
                              echo 'pas bien';
                              • Partager sur Facebook
                              • Partager sur Twitter
                              Anonyme
                                30 août 2006 à 16:39:11

                                J'ai déjà essayé et même si il 'maffiche NAN, apparament, il considère, la variable coomme un nombre et au dessus de 0.

                                Dingue oO
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  30 août 2006 à 16:41:19

                                  Et avec is_numeric(), ca marche toujours pas ?
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    30 août 2006 à 16:41:50

                                    ouais la par contre c'est chaud :D

                                    Bon bah faut que tu testes toi même si c'est possible ou non de faire la puissance. Allez un peu de math :p
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Anonyme
                                      30 août 2006 à 16:45:16

                                      Blackhole> non plus :o

                                      winzou> Ouaip c'est ce que j'ai fait en attendant mais j'aimerais bien ne pas contourner le truc :p
                                      Mais bon : :D
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        30 août 2006 à 16:49:35

                                        http://fr.php.net/manual/fr/function.pow.php
                                        Regarde la doc, ya des trucs interessants dans les commentaires.

                                        [edit] Et puis même :
                                        Note : PHP ne peut pas gérer une valeur négative de base . (c'est le nombre quoi)
                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        pow()

                                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                        • Editeur
                                        • Markdown