Probleme sur un arrondi

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Probleme sur un arrondi

par mere-teresa » 22 nov. 2006, 13:55

Note: Ce serait légitime, vu qu'elle fait partie de ces fossiles sévissant sur le forum :lol:
Je suis déjà sorti
Ben je te dis ZUT

par castelli » 22 nov. 2006, 12:59

Pour l'erreur :

Cannot redeclare round_up() (previously declared in /data/htdocs/Webdav_depot/enscr/intranet_enscr/intranet_enscr_personnel/intranet_lsab/v3/commande.php:114) in /data/htdocs/Webdav_depot/enscr/intranet_enscr/intranet_enscr_personnel/intranet_lsab/v3/commande.php on line 114

je l'ai supprimer en mettant la fonction dans un fichier externe

que j'appelle comme sa :
  include_once("roundup.php"); 
le code de cette fonction est :
<?php
function round_up ($value, $places=0) { 
  if ($places < 0) { $places = 0; } 
  $mult = pow(10, $places); 
  return ceil($value * $mult) / $mult; 
 } 
 ?>
et l'echo que je fais :
<?php echo round_up($prix_total2, 2); ?>

par castelli » 22 nov. 2006, 11:18

Bon bah j'ai essaillez de me debrouillez et j'ai fais comme sa
$value=$prix_total;
$place =2;
function round_up ($value, $places=0) { 
  if ($places < 0) { $places = 0; } 
  $mult = pow(10, $places); 
  return ceil($value * $mult) / $mult; 
 } 
 echo round_up (56.77001, 2); // displays 56.78 
 echo round_up (-0.453001, 4); // displays -0.453 
 echo round_up($prix_total2, 2);
Forcement comme vous pouvez l'immaginez sa ne peux pas fonctionner .
Le probleme vient du fait que je ne sait pas comment bien changer la fonction :/
j'immagine que je peu pas mettre $places=0 si la variable place =2
: /

quand j'execute ce code , l'erreur qui met retourner est :

Cannot redeclare round_up() (previously declared in /data/htdocs/Webdav_depot/enscr/intranet_enscr/intranet_enscr_personnel/intranet_lsab/v3/commande.php:114) in /data/htdocs/Webdav_depot/enscr/intranet_enscr/intranet_enscr_personnel/intranet_lsab/v3/commande.php on line 114


la ligne ou est ecrite la fonction est justement la 114..

Donc je voulais savoir si quelqun pouvait m'aider (j'ai passer deux heure dessus je sature vraiment )

Je vous remercie encore

par Ajoloca » 21 nov. 2006, 19:46

Re,

Les deux seules que tu dois utiliser sont $value et $places, $mult est un calcule intermédiaire.

Donc
$value == la valeur, pour toi $prix_total2
$places == chiffres après la virgule pour toi 2

par castelli » 21 nov. 2006, 19:40

Mdr :p voila j'ai edité ^^ veut pas me faire tapper

héhéhé

en cherchant sur le net j'ai trouvé un truc pas mal :

<?php
 
 function round_up ($value, $places=0) {
  if ($places < 0) { $places = 0; }
  $mult = pow(10, $places);
  return ceil($value * $mult) / $mult;
 }
 echo round_up (56.77001, 2); // displays 56.78
 echo round_up (-0.453001, 4); // displays -0.453
sa me donnerai exactement se que je desirerai faire
mais sa fonctionne pas chez moi

en faite je voux explique (c trés trés bete comme probleme ) je sait pas quoi mettre a la place des variable values , places et mult

lol vous pourriez m'eclairer (aprés je vous enmbete plus promis :) )

par DocType » 21 nov. 2006, 19:20

Elle va être enchantée :lol:
Lol j'immagine bien :lol:
Déjà quand je mets un h en trop elle me vole dans les poils (je suis un hamster ^^), alors là, comment va t-elle régir en se rendant compte que son pseudo s'approche de plus en plus de mère Thalassa ^^

Note: Ce serait légitime, vu qu'elle fait partie de ces fossiles sévissant sur le forum :lol:
Je suis déjà sorti

par zeus » 21 nov. 2006, 19:17

regarde du côté de la fonction ceil() alors ;)

PS : pas de H à mere-teresa :-*

par castelli » 21 nov. 2006, 19:16

Elle va être enchantée :lol:
Lol j'immagine bien :lol:

par Cyrano » 21 nov. 2006, 19:16

C'est magique la doc, on trouve par exemple : number_format() ;)

par DocType » 21 nov. 2006, 19:14

mere theressa
Elle va être enchantée :lol:

par castelli » 21 nov. 2006, 19:12

Euh , alors la variable est $reduction2 (j'ai donc mis un espace aprés la virgule )
<?php echo round($prix_total2, 2); ?>
c'est mieu comme sa zeus ? :p

sinon mere-teresa j'ai pas compris ce que tu essaillais de me dire

ajoloca
j'ai tester ce que tu ma mis
<?php echo str_replace('.', ',', round($reduction2, 2)); ?>
et sa marche bien
par exemple 33.5984 deviendra 33.60

par contre 49.4848 devient 49.48

Hors il faudrait arrondir toujours au superieur et aussi si possible si j'ai un chiffre comme 27.2 qu'il devienne 27.20

voila voila

par Ajoloca » 21 nov. 2006, 18:58

Bonjour,

En gardent le . dans l'espression round()
<?php echo str_replace('.', ',', round($reduction2, 2)); ?>

par zeus » 21 nov. 2006, 18:57

Lorsque tu écrit
round($reduction2,2)
quel est le nom de la variable ?

PS : D'une manière générale, il est bon d'adopter les mêmes reflexes d'espacement que pour la langue francaise : un espace après la virgule
round($reduction2, 2)
A condition que ta variable soit $reduction2 et pas $reduction2,2 (ce qui est faux)

par mere-teresa » 21 nov. 2006, 18:56

et si tu le multiplie d'abord pour avoir un entier ?

Probleme sur un arrondi

par castelli » 21 nov. 2006, 18:51

Bonjour (pour la troisieme fois de la journée :lol: )

j'ai un probleme au niveau des arrondis que je fais

Code : Tout sélectionner

<?php echo round($reduction2,2); ?>
sachant que la variable reduction est egale a 45,4848 , j'aimerais que mon arrondi me donne 45,49 hors en ce moment il me donne juste 45 (pourtant j'ai regarder plusieur tutoriaux sur le sujet et il devrais me donner le bon resultat (si j'ai pas fais d'erreur ).

Donc je pense que la faute vient du fait qu'il y ait une virgule dans la variable mais j'en ai besoin lors de l'affichage de la variable donc je ne sait pas trop comment faire

Vous auriez une idée pour m'aidez? (je seche )

Merci encore