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)
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
Para obter um resultado com ponto decimal, basta substituir um dos inteiros por um float:
27 / 5.0 #=> 3.4
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
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
Esses métodos ajudam bastante no desenvolvimento com Ruby, tornando o código mais expressivo e direto.
Top comments (0)