3.7 Mixing Data Types

Ruby will always try to remain in the same data type as its operands. For example, if the integers 2 and 3 are added in Ruby, the result will also be an integer.

irb(main):001:0> 2 + 3
=> 5

Likewise, when adding two floats, the result will also be a float.

irb(main):002:0> 2.0 + 3.0
=> 5.0

When Ruby encounters two operands of different data types, it will convert them to match where possible.

irb(main):003:0> 2 + 3.0
=> 5.0

The issue of dividing integers like 5 / 2 can finally be resolved. We are able to force Ruby to convert integer expressions into float expressions. Simply throw a float into the mix.

irb(main):004:0> 1.0 * 5 / 2
=> 2.5

Of course, it is sometimes impossible to convert the data types to match. In this case, Ruby will output a TypeError.

irb(main):005:0> x = 1 + "hello"
TypeError: String can't be coerced into Fixnum
     from (irb):4:in '+'
     from (irb):4
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.226.104.27