Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
798 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  Trouver la valeur supérieur arrondie a n'importe quel chiffre ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Trouver la valeur supérieur arrondie a n'importe quel chiffre ?

n°706317
chevket
Posté le 22-04-2004 à 18:14:20  profilanswer
 

Salut,
 
je suis en train de chercher une solution qui me permettrait de définir à coup sur la valeur supérieur arrondie à une certaine valeur.
 
Par exemple, j'ai une valeur=55 et j'aimerais trouver soit une fonction, soit un algorithme qui me dise d'emblée, que la valeur supérieure arrondie aux dizaines est 60.
il faut que ça marche a tout les coups, que ma valeur soit egale a 0.5141 ou qu'elle soit égale a 5411448144...
 
En fait c'est pour définir l'echelle d'un graphique et faire en sorte que mon axe en y soit bien défini avec des chiffres rond que je puisse dessiner de maniere propre une echelle régulière. (c'est pour faire des graphiques vectoriels et interactifs à base de bases rrd)
 
Pour l'instant j'utilise des comparaisons afin de définir des unités en fonction de la valeur max que j'ai sur une série de données. En gros j'utilise un sprintf pour reccuperer le premier chiffre de mon nombre ainsi que le log en base 10 afin de définir sa puissance. Mais ça marche pas pour les valeur inférieures a 1...
 
Si quelqu'un avait une idée, ça m'aiderait bien.
 
Merci.

mood
Publicité
Posté le 22-04-2004 à 18:14:20  profilanswer
 

n°706597
burgergold
5$? va chez l'diable!
Posté le 23-04-2004 à 00:28:02  profilanswer
 

Code :
  1. use POSIX qw(floor);
  2. my $value = 1; # remplace par ce que tu veux
  3. my $new_value = floor($value) - ($value % 10) + 10;


---------------
http://www.boincstats.com/signature/user_664861.gif
n°707404
chevket
Posté le 23-04-2004 à 17:27:50  profilanswer
 

Salut,
 
merci bien pour ta réponse, mais chez moi (sur windows) je suis pas sur si ça fait ce que c'est censé faire. Qu'est ce que c'est censé faire ?
 
si je mets 5451 dans value, ça me retourne 5460 dans new_value, et dans ce cas j'ai pas besoin d'utiliser de fonction en plus car :
value - value%10 +10
me donne le meme resultat.
 
floor(5415) me donne 5415...
la fonction floor est censée donner un autre resultat ?

n°707415
chevket
Posté le 23-04-2004 à 17:35:20  profilanswer
 

OK
 
la fonction floor fait l'arrondi inférieur !
c'est toujours ça de gagné sur mon sprintf qui me fait un arrondi supérieur !
sinon, je vais devoir arranger ta procedure, car en fait, pour la valeur 5462, je prefererais avoir comme arrondi supérieur 6000.
et puis de toute maniere, pour les chiffres compris entre 0 et 1 je suis coincé...

n°707424
chevket
Posté le 23-04-2004 à 17:45:12  profilanswer
 

Code :
  1. use POSIX qw(floor);
  2. my $value=5411454;
  3. sub calc_power{
  4.   my ($number) = @_;
  5.   my $log = log($number)/log(10);
  6.   my $result=1;
  7.   for (my $i=1; $i<$log;$i++){
  8.     $result=$result*10
  9.   }
  10.   return $result;
  11. }
  12. my $power = calc_power($value);
  13. my $new_value = floor($value) - ($value % $power) + $power;


 
enfin, si y avait une fonction qui faisait ça d'un coup, voir qui faisait un calcul intelligent genre trouver comme limite 5500 pour 5325, ça serait bien mieux :)


Message édité par chevket le 23-04-2004 à 17:47:13
n°707534
burgergold
5$? va chez l'diable!
Posté le 23-04-2004 à 21:31:04  profilanswer
 

jvais te regardé ca ce soir (15hrs30 ici), et jvais surement te faire ca en 1 ou 2 lignes :P


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  Trouver la valeur supérieur arrondie a n'importe quel chiffre ?

 

Sujets relatifs
(résolu] valeur ou index de boutons dans une msgboxvaleur par défaut d'un formulaire
Où trouver des fichiers DOS...Addon Meta pour PhpBB : ou le trouver ?
Validation d'un chiffre romaintrouver adresse IP
trouver la frequence d'un sontrouver son temps de connexion internet et l'afficher
un code écrit en assembleur est-il exécutable sur n'importe quel OS ?convertir chiffre en lettre Excel
Plus de sujets relatifs à : Trouver la valeur supérieur arrondie a n'importe quel chiffre ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR