Como PAC e número redondo em ruby

votos
40

Eu gostaria de cap um número em Ruby (on Rails).

Por exemplo, eu tenho, como resultado de uma função, uma bóia, mas eu preciso de um int.

Tenho instruções muito específicas, aqui estão alguns exemplos:

Se eu ficar 1.5eu quero 2, mas se eu ficar 2.0eu quero 2(e não 3)

Fazendo number.round(0) + 1não vai funcionar.

Eu poderia escrever uma função para fazer isso, mas estou certo que já existe.

Se, no entanto, que não existe, onde eu deveria criar minha função cap?

Publicado 19/05/2009 em 20:10
fonte usuário
Em outras línguas...                            


5 respostas

votos
78

Tente ceil :

 1.5.ceil => 2
 2.0.ceil => 2
Respondeu 19/05/2009 em 20:18
fonte usuário

votos
11

.ceil é bom, mas lembre-se, mesmo menor valor no flutuador irá causar o seguinte:

a = 17.00000000000002
17.0
a.ceil
18
Respondeu 09/05/2012 em 16:03
fonte usuário

votos
11

Que tal number.ceil?

Isso retorna o menor inteiro maior ou igual a número.

Tenha cuidado se você estiver usando isso com números negativos, certifique-se que ele faz o que você espera:

1.5.ceil      #=> 2
2.0.ceil      #=> 2
(-1.5).ceil   #=> -1
(-2.0).ceil   #=> -2
Respondeu 19/05/2009 em 20:16
fonte usuário

votos
6

Use # ceil numérico :

irb(main):001:0> 1.5.ceil
=> 2
irb(main):002:0> 2.0.ceil
=> 2
irb(main):003:0> 1.ceil
=> 1
Respondeu 19/05/2009 em 20:17
fonte usuário

votos
2

float.ceil é o que você quer para números positivos. Certifique-se de considerar o comportamento para números negativos. Ou seja, você quer -1,5 a "tampa" para -1 ou -2?

Respondeu 19/05/2009 em 20:21
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more