Difference Between Integers and Floats in a Ruby Program
Ruby has a few different data types for working with numbers, two of the primary options are Integer and Float, in this lesson we're going to walk through the difference between the two data types and how they can affect your program.
• Watch Guide Video
Video locked
This video is viewable to users with a Bottega Bootcamp license

Ruby has a few different data types for working with numbers, two of the primary options are `Integer` and `Float`. In this lesson we're going to walk through the difference between the two data types and how they can affect your program. In the last lesson on Ruby order of operations, you saw a little bit of strange behavior when it came to division. I'm going to bring up the same example. In the code the division equation `2/216` was treated as `0`. We know this is obviously not true, so why did Ruby return this value?

When it saw the values `2` and `216`, it treated them as integers. So, it assumed that the user would want a rounded value, so it rounded it to the nearest whole number, which is `0` in this case.

To get the correct answer, we'll need to convert it into a decimal, which will automatically give us a `Float` data type. So, if you run `2.0/216`, you will get the answer `0.00925925925925925925925925925926`.

This is the difference between the `integer` and `float` data types in Ruby. In a real world application, you are more likely to use the float data type in your database as opposed to integers because you can get more accurate values. In fact, I rarely use integer data type in a real world application because I want precise values to work with when I'm working with calculations.

Integers are ok to use for items such as an ID, however make sure to only use them when you know you're not going to be performing calculations with the value.

In general, there are three main number based data types in Ruby, namely:

• Integer - (1,2,3)
• Float - (1.2, 3.1, 4.23)
• Decimal - (3.56456456456, 3.456588990)

The main difference between `float` and `decimal` is that the latter gives a more accurate value, even though it is likely to take up more space in your database. This is why decimal is ideal for complex financial applications.

I hope this gives you a clear understanding of the different numerical data types in Ruby.