Together let start a journey and revisit our Ruby foundations.
Each post will include some theory but also exercise and solution.
If you have any questions/comments or your are new and need help, you can comment below or send me a message.
Numbers Type in Ruby
In Ruby the two numbers primary type are Integer and Float.
# Integer age = 27 # Float price = 79.99
Attention: In Ruby manipulating integers always end up with an integer
number = 1 / 100 # 0
Why this division return 0? Because both numbers are integer and Ruby assumed that you would want a rounded value, so it rounded it to the nearest whole number, which is 0 in this case.
Ok but what can I get the right value with decimal? Yes just use a float in the equation
number = 1.0 / 100 # 0.01
String to number
Sometime you will have string that repesent number and would like to perform math operation on those.
number = '1' other_number = '2' puts number + other_number # 12
This operation will return 12. String are not number.
To make it work we have to convert string to number using the to_i method
puts number.to_i + other_number.to_i # 3
to_i convert string to integer. You can also use to_f to convert your string to a float number.
Arithmetic Order of Operations
If we try to run this code what will be the value? In which order the operation will be run?
In Ruby the order of operation is
A old trick to remember this order is to take the first letter of each item that give the word PEMDAS
Let's do example:
result = 100**2 + 20 - 200 / (7 - 2) + 150 + 2 * 100 # 10330
Here the order of operation to make that result possible
# 1. Parentheses (7-2) = 5 100**2 + 20 - 200 / 5 + 150 + 2 * 100 # 2. Exponent 100**2 = 10000 10000 + 20 - 200 / 5 + 150 + 2 * 100 # 3. Multiplication 2 * 100 = 200 10000 + 20 - 200 / 5 + 150 + 200 # 4. Division 200 / 5 = 40 10000 + 20 - 40 + 150 + 200 # 5. Final Addition and Subtraction 10000 + 20 - 40 + 150 + 200 = 10330
Here are some numbers manipulation methods
# Round number.round 2.68 # 3 # Round down number.floor 2.68 # 2 # Round up number.ceil 2.68 # 3 # Next 2.next # 3 # Is number event ? puts 2.even? # true # Is number odd ? puts 2.odd? # false # Generate a random number random_number = rand(1..100)
Create a little program that:
Generate a random number between 1.0 and 100. That will generate a float number.
Use the round method to round your random number.
Create an arithmetic operation using all the PEMDAS item and try figure out the result without looking at Ruby result.
number1 = rand(1.0..100).round # 74 # Example only number2 = 2**4 + 50 * (10 + 20) / 4 # 391
That's it for today. The journey just started, stay tune for the next post very soon. (later today or tomorrow)
If you have any comments or questions please do so here or send me a message on twitter.
I am new on twitter so if you want to make me happy
Follow me: Follow @justericchapman