Integer e float: dois tipos de número
Nem todo número é o mesmo tipo de número
5 e 5.0 são o mesmo valor na matemática. No Ruby, são tipos diferentes de objeto.
5.class # => Integer
5.0.class # => Float
Integer guarda números inteiros exatos, sem ponto decimal: 5, -12, 1000. Float guarda números com ponto decimal, como 5.0, 3.14 e -0.5, aproximando números reais como o visor de uma calculadora. O literal decide qual você recebe. Escreva um ponto decimal e recebe um Float; deixe de fora e recebe um Integer.
Por que a distinção existe
A divisão reflete como esses números se comportam. Itens num carrinho, um número de página ou uma contagem de dias são quantidades inteiras exatas, então Integer serve. Um preço com centavos, uma média ou uma porcentagem precisa de frações, então Float serve. Escolher o certo desde o início evita as duas surpresas das próximas duas aulas: divisão inteira e imprecisão de ponto flutuante.
Aritmética mistura naturalmente
Combine um Integer e um Float e você recebe um Float. O Ruby promove o tipo mais limitado para combinar com o mais amplo, sozinho.
5 + 2 # => 7, Integer + Integer = Integer
5 + 2.0 # => 7.0, Integer + Float = Float
5.0 + 2 # => 7.0, Float + Integer = Float, mesma coisa em qualquer ordem
Você nunca declara a conversão. O Ruby descobre o tipo do resultado pelos valores, o espírito sem cerimônia do curso Variáveis e atribuição.
Convertendo deliberadamente
Dois métodos convertem de forma explícita. Eles são primos do to_s e do to_sym do curso passado.
5.to_f # => 5.0, de Integer para Float
5.9.to_i # => 5, de Float para Integer, a parte decimal é simplesmente descartada, não arredondada
Repare no último. to_i trunca: corta tudo depois do ponto decimal em vez de arredondar. 5.9.to_i é 5, não 6. A aula 4 cobre round, que arredonda.
O que este curso cobre
- Aula 1, Integer e Float: dois tipos de número, e por que a distinção importa (você está aqui)
- Aula 2, Divisão inteira: a surpresa numérica mais comum do Ruby
- Aula 3, Precisão de float: por que
0.1 + 0.2não é bem0.3 - Aula 4, Métodos numéricos:
round,abs,even?e outras ferramentas do dia a dia - Aula 5, Valores booleanos:
trueefalse, e nada no meio - Aula 6, Truthiness: o que conta como "verdadeiro o bastante" numa condição
- Aula 7, Juntando tudo: um pequeno desafio combinando números e booleanos
No final, você vai saber de qual tipo um valor deve ser e o que acontece quando os dois se misturam.
Continue com a aula 2
Divisão inteira: o gotcha clássico
Mostra por que dividir dois Integer descarta a fração, como obter resultado fracionário e o que % devolve.
Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.