Ruby calls decimal numbers
Floats. To create a
Float rather than an
Integer, just make sure to include a decimal point:
5.class # => Integer 5.0.class # => Float
The math methods work mostly like you’d expect, and similarly to the ones for integers.
The main difference to keep in mind is with
/. Division with floats works the way that we’re used to — it returns fractional results, as a
12.0 / 5.0 # => 2.4
Try the following and see what you get:
12 / 5 12.0 / 5 12 / 5.0
What did you discover? If either side is a float, float division will be performed.
This is why
.to_f method can come in handy while doing math; at some point if you need to do division and need a fractional answer, then convert it to a
One other thing to keep in mind: you can use
** in conjunction with fractions to calculate roots, since 91/2 is the same as the square root of 9, 81/3 is the same as the cube root of 8, etc.
9 ** 0.5 # => 3.0 8 ** (1/3.0) # => 2.0
Floats can round themselves. Play around with the
rand method that we met earlier can also be called with no arguments, in which case it returns a
Float between 0 and 1. This is very handy for e.g. probabilities. Give it a try: