Aroundi avec php

salut mes amis voila mon probleme j ais un chiffre
$ss=28420.5*9/100;
$ss=2557.845
ok
mais mois je veux que
$ss= 2557.85
avec la roundi du php j'ais essayé plusieur solution mais rien marché
merci pour votre aide

4 réponses

  1. Effectivement je n'avais pas fait attention à l'arrondi supérieur.

    Dans ce cas il faut utiliser le 3e paramètre de round :
    $s1 = 2557.845;
    $s2 = round($s1, 2, PHP_ROUND_HALF_UP);
    var_dump($s2); // 2557.85
    
    1. Salut,

      Tout simplement :
      $s1 = 2557.845;
      $s2 = round($s1, 2);
      var_dump($s2); // 2557.85
      


      https://www.php.net/manual/fr/function.round.php

      Bonne journée
      1. merci poure ta reponce mais sa marche pas
      2. $s1 = 2557.845;
        $s2 = round($s1, 2);
        echo"$s2";
        //2557.84
      3. je veux que //2557.85
      4. regarder avec mois j ais essayé
        echo sprintf("%0.2f", 2557.845);
        2557.84
        mais
        echo sprintf("%0.2f", 2557.835);
        2557.84
        echo sprintf("%0.2f", 2557.825);
        2557.82
        echo sprintf("%0.2f", 2557.815);
        2557.82
        pkoi avec 2 et 4 ne fonction pas
    2. Bonjour,

      je crois que ceci devrait t'aider

      $nss = number_format($nbr,2);

      Dis moi si c'est bon pour toi.
      @+
      1. merci mais non sa marche pas
      2. Je ne suis pas certaine mais essaye ceci

        sprintf("%.2f",2557.845);
      3. regarder avec mois j ais essayé
        echo sprintf("%0.2f", 2557.845);
        2557.84
        mais
        echo sprintf("%0.2f", 2557.835);
        2557.84
        echo sprintf("%0.2f", 2557.825);
        2557.82
        echo sprintf("%0.2f", 2557.815);
        2557.82
        pkoi avec 2 et 4 ne fonction pas
        s
    3. Modérateur
      Bonjour,

      Regarde ici :
      https://www.php.net/manual/fr/function.round.php#98704

      function mround($number, $precision=0) {
         
          $precision = ($precision == 0 ? 1 : $precision);   
          $pow = pow(10, $precision);
         
          $ceil = ceil($number * $pow)/$pow;
          $floor = floor($number * $pow)/$pow;
         
          $pow = pow(10, $precision+1);
         
          $diffCeil     = $pow*($ceil-$number);
          $diffFloor     = $pow*($number-$floor)+($number < 0 ? -1 : 1);
         
          if($diffCeil >= $diffFloor) return $floor;
          else return $ceil;
      }
      
      echo mround(4.725, 2); // Donne 4.73 
      

      1. merci beaucoup normalement ça marche très bien merci mon amis
      2. Modérateur
        Si la question est résolue..
        Merci de ne pas oublier de clôturer le sujet
        (en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

        Cordialement,
        Jordane
      3. ok mon amis merci merci