DEV Community

Henrique Silva
Henrique Silva

Posted on

Números em Ruby


O Ruby oferece todos os operadores matemáticos básicos que você espera encontrar:

# Adição
1 + 2   #=> 3

# Subtração
4 - 3   #=> 1

# Multiplicação
8 * 2   #=> 16

# Divisão
102 / 2  #=> 51

# Expoente
2 ** 2  #=> 4
3 ** 3  #=> 27

# Módulo (resto da divisão)
8 % 2   #=> 0  (8 / 2 = 4; sem resto)
10 % 4  #=> 2  (10 / 4 = 2 com resto 2)
Enter fullscreen mode Exit fullscreen mode

Números inteiros e números com ponto decimal

No Ruby, trabalhamos basicamente com dois tipos de números: os inteiros, como 10, e os de ponto flutuante (ou floats), como 10.5, 10.0 ou 0.25.

Um detalhe importante: quando você realiza uma operação entre dois inteiros, o Ruby também retorna um inteiro — ou seja, nada de casas decimais no resultado, mesmo que você espere. Para resultados mais precisos, é bom usar pelo menos um número com ponto decimal na conta.

27 / 5    #=> 5, não 5.4
Enter fullscreen mode Exit fullscreen mode

Para obter um resultado com ponto decimal, basta substituir um dos inteiros por um float:

27 / 5.0  #=> 3.4
Enter fullscreen mode Exit fullscreen mode

Convertendo tipos numéricos

Para conversão entre floats e inteiros basta:

# Para converter um inteiro em float:
3.to_f   #=> 3.0

# Para converter um float em inteiro:
23.5.to_i #=> 23
23.0.to_i #=> 13
Enter fullscreen mode Exit fullscreen mode

Alguns métodos úteis para números

Ruby oferece métodos úteis para trabalhar com números:

# even? (verifica se é par)
6.even? #=> true
7.even? #=> false

# odd? (verifica se é ímpar)
6.odd? #=> false
7.odd? #=> true

# abs
# Retorna o valor absoluto (sem sinal negativo)
-10.abs   #=> 10
10.abs    #=> 10

# ceil
# Arredonda um número para cima
1.2.ceil  #=> 2
3.9.ceil  #=> 4

# floor
# Arredonda um número para baixo
1.9.floor #=> 1
3.1.floor #=> 3

# round
# Arredonda um número para o inteiro mais próximo
3.14159.round    #=> 3
3.5.round        #=> 4
3.14159.round(2) #=> 3.14 (com casas decimais)

# to_s
# Converte o número para uma string
42.to_s     #=> "42"

# next
# Retorna o próximo número inteiro
5.next      #=> 6

# pred
# Retorna o número anterior (predecessor)
5.pred      #=> 4

# zero?
# Verifica se o número é zero
0.zero?     #=> true
5.zero?     #=> false

# positive?
# Verifica se o número é positivo
5.positive? #=> true
-3.positive?#=> false

# negative?
# Verifica se o número é negativo
-3.negative?#=> true
2.negative? #=> false
Enter fullscreen mode Exit fullscreen mode

Esses métodos ajudam bastante no desenvolvimento com Ruby, tornando o código mais expressivo e direto.

Top comments (0)