ruby-on-rails - monturas - moneda intemporal
Cómo poner un tope y número redondo en rubí (5)
¿Qué hay de number.ceil
?
Esto devuelve el entero más pequeño mayor o igual que el número.
Tenga cuidado si está utilizando esto con números negativos, asegúrese de que haga lo que espera:
1.5.ceil #=> 2
2.0.ceil #=> 2
(-1.5).ceil #=> -1
(-2.0).ceil #=> -2
Me gustaría marcar un número en Ruby (en Rails).
Por ejemplo, tengo, como resultado de una función, un flotador pero necesito un int.
Tengo instrucciones muy específicas, aquí hay algunos ejemplos:
Si obtengo 1.5
quiero 2
pero si obtengo 2.0
quiero 2
(y no 3
)
Hacer number.round(0) + 1
no funcionará.
Podría escribir una función para hacer esto, pero estoy seguro de que ya existe una.
Si, sin embargo, no existe, ¿dónde debería crear mi función de límite?
.ceil es bueno, pero recuerda, incluso el valor más pequeño en float causará esto:
a = 17.00000000000002
17.0
a.ceil
18
Prueba ceil :
1.5.ceil => 2
2.0.ceil => 2
Use 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 es lo que quieres para números positivos. Asegúrese de considerar el comportamiento de los números negativos. Es decir, ¿quieres -1.5 a "tope" a -1 o -2?