Comment coiffer et arrondir le numéro en rbuy

Je voudrais “plafonner” un nombre en Ruby (on Rails).

Par exemple, à la suite d’une fonction, j’ai un float mais j’ai besoin d’un int.

J’ai des instructions très précises, en voici quelques exemples:

Si j’obtiens 1.5 je veux 2 mais si je reçois 2.0 je veux 2 (et non 3 )

Faire number.round(0) + 1 ne fonctionnera pas.

Je pourrais écrire une fonction pour le faire, mais je suis sûr qu’il existe déjà.

Si, cependant, il n’existe pas, où devrais-je créer ma fonction de cap?

Essayez ceil :

  1.5.ceil => 2 2.0.ceil => 2 

Que diriez-vous de number.ceil ?

Cela renvoie le plus petit nombre entier supérieur ou égal à nombre.

Soyez prudent si vous utilisez ceci avec des nombres négatifs, assurez-vous qu’il fait ce que vous attendez:

 1.5.ceil #=> 2 2.0.ceil #=> 2 (-1.5).ceil #=> -1 (-2.0).ceil #=> -2 

.ceil est bon, mais souvenez-vous que même la plus petite valeur de float provoquera ceci:

 a = 17.00000000000002 17.0 a.ceil 18 

Utilisez Numeric # ceil :

 irb(main):001:0> 1.5.ceil => 2 irb(main):002:0> 2.0.ceil => 2 irb(main):003:0> 1.ceil => 1 

float.ceil est ce que vous voulez pour les nombres positifs. Veillez à considérer le comportement des nombres négatifs. C’est-à-dire, voulez-vous que -1.5 “plafonne” à -1 ou -2?