10
votes

Comment puis-je entourer un entier jusqu'au dans Ruby?

dire que j'ai l'un des numéros suivants:

230957 ou 83487 ou 4785

Qu'est-ce qu'un moyen de rubis je pourrais les retourner comme 300000 ou 90000 ou 5000, respectivement?


0 commentaires

8 Réponses :


1
votes

Il semble un peu laid, mais comme premier coup (tours up à chaque fois) ... xxx

meilleur (rondes correct): xxx


0 commentaires

7
votes
irb(main):022:0> round_up(4785)
=> 5000    
irb(main):023:0> round_up(83487)
=> 90000
irb(main):024:0> round_up(230957)
=> 300000

3 commentaires

Mikej, merci d'avoir souligné que ma "solution" n'élargissait pas. J'ai supprimé toute la solution pour empêcher la confusion.


@John: Je serais intéressé par votre solution, car je veux que quelque chose qui va tourner au plus proche plutôt que rond.


@Andrew Si vous modifiez la condition dans ma méthode de si restante == 0 à si reste == 0 || RESTE Ensuite, il sera tourné au plus proche. Si ce n'est pas ce que vous voulez dire, alors si vous postez une question séparée avec quelques exemples de ce que vous voulez, je vais jeter un coup d'oeil.



2
votes

Je n'ai réellement effectué aucun codage dans Ruby, mais vous seriez capable de le faire avec une fonction d'arrondi standard si vous le poussez au chiffre que vous vouliez d'abord.

Exemple: P>

2 or 3 * 100000(the resolution you want) = 200000 or 300000 respectively.


0 commentaires

6
votes
 >>  [230957, 83487, 4785].collect{|i|round_to_significant_digit(i, 2)}
 => [230000, 83000, 4800]
 >>  [230957, 83487, 4785].collect{|i|round_to_significant_digit(i, 3)}
 => [231000, 83500, 4790]

0 commentaires

2
votes

Dans les rails, vous pouvez également aimer l'aide "Number_To_human", qui choisit automatiquement une bonne dimension à tourner à.

http://api.rubyonRails.org/ Classes / ActionView / Helpers / NumberHelper.html # Méthode-I-Number_To_Human


0 commentaires

2
votes

Math.Round accepte les nombres négatifs. Si vous recherchez seulement le 10 le plus proche, vous pouvez faire (my_num) .round (-1) .

Le seul inconvénient d'être qu'il n'ya aucun moyen d'incorporer le plafond ici, il ne reste donc pas toujours - 4.Round (-1) retournera 0.


0 commentaires

0
votes

Une suggestion simple: xxx

pour l'utiliser: xxx


0 commentaires

0
votes

Voici ma version:

round(0)   # 0
round(1)   # 10
round(9)   # 10
round(10)  # 20
round(-10) # -20
round(100) # 1000

round(1, 1000)        # 1000
round(499, 1000, 500) # 0
round(500, 1000, 500) # 1000
  • 0 li>
  • Valeurs inférieures à 10 li>
  • Numéros négatifs li>
  • Le point de pivot peut être changé li> ul>

    Voici quelques exemples d'utilisation: p> xxx pré> p>


0 commentaires