Arrondir une valeur suivant une 2 bornes

Arrondir une valeur suivant une 2 bornes - Algo - Programmation

Marsh Posté le 10-01-2006 à 11:48:13    

j'ai un graph a dessiner, et pour l'axe des Y je doit faire varier un nombre entre 2 bornes sur P palliers.
 

ex: min = 100 et max = 200
 
jai donc pallier = (max-min)/P
si P=20 ca donne:
 
pallier = (200-100)/20 = 5
 
ce qui nous fait 100 105 110 115 120 125 130 135 ... 200


 
bon ici ca se passe bien mais si on prend 37845 et 59276 ca me donne un ecart de 1071.55 ce qui fera des chiffres pas tres presentables (augmenter de 1071 aurait ete bien mieux ici)
le probleme cest quil ne suffit pa darrondir a lunité pres, par ex:
 
si on a min=0.00005  et max =0.0007 ca ne fonctionne plus
 
c tres simple comme prob mais je trouve pas la formule (ou la methode) qui permette de faire ca peut importe les deux valeurs


Message édité par red faction le 10-01-2006 à 11:52:07
Reply

Marsh Posté le 10-01-2006 à 11:48:13   

Reply

Marsh Posté le 10-01-2006 à 16:48:29    

[:yoyoz]

Reply

Marsh Posté le 10-01-2006 à 16:50:07    

y'en a plein sur le daily wtf [:moule_bite]

Reply

Marsh Posté le 10-01-2006 à 17:50:54    

avec le sprintf?  
 
a ouais troop cool  [:yamusha]

Reply

Marsh Posté le 11-01-2006 à 18:25:47    

[:yoyoz]
 
enfait un fonction qui me retourne les 3 premiers chiffre je pense que ca pourrait me sauver ex:
 
12045.5 la fonction retourne 12000.0
 
154.2 => 154
91 => 91
1202 => 1200
19954.0 =>19900.0
 
0.0053123000 => 0.0053100000  ...


Message édité par red faction le 11-01-2006 à 18:29:40
Reply

Marsh Posté le 16-01-2006 à 19:19:43    

Je vais peut-être me faire taper dessus, mais tu peux appliquer ta solution en convertissant le nombre en chaîne?
Genre, tant que nombre[i] est différent de 0 ou de . tu passes au suivant, sinon, tu mets de côté dans nb_final[j], jusqu'à ce que j soit égal à 2 (en indiçant à partir de 0). Ensuite tu convertis nb_final en nombre et tu as ton pallier.

Reply

Marsh Posté le 16-01-2006 à 19:28:23    

c bon cherchez plus jai trouver une solution depuis un ptit temps
 
il suffit de faire ch = round(log 10 nb) pour trouver le nombre de chiffres...
 
apres une petite division :
multiple = ch*2  
rounded_nb = round (nb/multiple ) * multiple


Message édité par red faction le 16-01-2006 à 19:46:55
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed