Uno de los aspectos clave de trabajar con números en Ruby es la distinción entre los números enteros (números sin dígitos después del separador decimal) y los números de coma flotante (números con cero o más dígitos después del separador decimal).
Se implementan mediante las clases Integer y Float.
a = 1
b = 1.0
a.class
#=> Integer
b.class
#=> Float
+, -, *, /).
Los números se pueden comparar con los operadores de comparación estándar.Integer siempre darán como resultado una instancia de Integer.Float darán como resultado otras instancias de Float.Integer y instancias de Float darán como resultado instancias de Float.Float e Integer tienen métodos que convierten valores de un tipo a otro.
Los números Integer son precisos a una unidad entera, mientras que Float tiene una precisión fraccionaria respecto a un número entero.
Esto significa que convertir un número de coma flotante a un número entero puede dar lugar a una pérdida de precisión.4.9.to_i
#=> 4
5.to_f
#=> 5.0
7 - 3.0
#=> 4.0
2 == 4
#=> false
1.0 == 1
#=> true
Se puede usar un condicional if para ejecutar código de forma condicional:
x = 5
if x == 5
# Execute logic if x equals 5
elsif x > 7
# Execute logic if x greater than 7
else
# Execute logic in all other cases
end
A veces quieres ejecutar una instrucción (o varias instrucciones) si una condición no es verdadera; para situaciones como esa, Ruby implementa la palabra clave unless:
x = 4
unless x == 5
# Execute logic if x does not equal 5
else
# Execute logic if x == 5
end
Si quieres ejecutar código diferente según el valor de una variable, la instrucción case de Ruby puede resultarte útil:
y = 5
case y
when 3
# Execute logic if y equals 3
when 5
# Execute logic if y equals 5
else
# Execute logic in all other cases
end
A veces, el mismo problema se puede resolver con distintos tipos de condicionales; en ocasiones, uno puede encajar mejor con el problema que otro. Es una buena idea pararte un momento y considerar también las otras dos opciones cuando uses cualquiera de los tres condicionales.