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. 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
  4. 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