2011-10-20 3 views
1

Je ne suis pas sûr à 100% comment poser cette question alors s'il vous plaît ne me marquer pour cela .. Je ferai de mon mieux.obtenir gamme de numéros

Comment puis-je déterminer la plage dans laquelle mon numéro se situe?

par exemple:

var range = 100; 
var myNum = 320; 

Therfore mon résultat serait 300 que c'est comprise entre 320 et tombe dans.

exampes supplémentaires seraient:

var range = 100; 
var myNum = 190; 

result: 100 

var range = 100; 
var myNum = 864; 

result: 800 

et enfin:

var range = 50; 
var myNum = 864; 

result: 850 

Hope this faire sence.

+1

Donc ce que vous voulez est le plus proche multiple plus petit que le nombre donné ... "range" est quelque chose de différent IMO (comme '50' est dans la gamme de' 0' et '100'). –

Répondre

6

Ceci est la logique que vous cherchez:

var result = range * Math.floor(myNum/range); 

Remplacer Math.floor par Math.ceil si vous voulez trouver la limite supérieure de la « plage ».
Le code ci-dessus est une implémentation de:

  • Comment souvent range costume en range?
  • Multipliez le résultat précédent par range
  • Le résultat final est égal à la "plage de numéros".
+0

Merci @Rob. Appréciez-le. – Cybercampbell

5

Vous pouvez également soustraire de myNum la modulus de myNum par range:

var result = myNum - (myNum % range); 
2

result = myNum - (myNum % range)

gamme myNum de% signifie « si je mets plage dans mon myNum autant de fois que je peux, quel entier me reste-t-il?

et vous pouvez soustraire cela de myNum et vous obtenez votre résultat.

Questions connexes