Sharpen your Ruby: Working with Numbers

I develop in Javascript, Python, PHP and Ruby. By far Ruby is my favorite programming language.

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 quest…


This content originally appeared on DEV Community and was authored by Eric Chapman

I develop in Javascript, Python, PHP and Ruby. By far Ruby is my favorite programming language.

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

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

  • Parentheses
  • Exponent
  • Multiplication
  • Division
  • Addition
  • Subtraction

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

Numbers methods

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)

Exercice

Create a little program that:

  1. Generate a random number between 1.0 and 100. That will generate a float number.

  2. Use the round method to round your random number.

  3. Create an arithmetic operation using all the PEMDAS item and try figure out the result without looking at Ruby result.

Solution

number1 = rand(1.0..100).round
# 74

# Example only
number2 = 2**4 + 50 * (10 + 20) / 4
# 391

Conclusion

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


This content originally appeared on DEV Community and was authored by Eric Chapman


Print Share Comment Cite Upload Translate Updates
APA

Eric Chapman | Sciencx (2021-04-27T11:46:32+00:00) Sharpen your Ruby: Working with Numbers. Retrieved from https://www.scien.cx/2021/04/27/sharpen-your-ruby-working-with-numbers/

MLA
" » Sharpen your Ruby: Working with Numbers." Eric Chapman | Sciencx - Tuesday April 27, 2021, https://www.scien.cx/2021/04/27/sharpen-your-ruby-working-with-numbers/
HARVARD
Eric Chapman | Sciencx Tuesday April 27, 2021 » Sharpen your Ruby: Working with Numbers., viewed ,<https://www.scien.cx/2021/04/27/sharpen-your-ruby-working-with-numbers/>
VANCOUVER
Eric Chapman | Sciencx - » Sharpen your Ruby: Working with Numbers. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2021/04/27/sharpen-your-ruby-working-with-numbers/
CHICAGO
" » Sharpen your Ruby: Working with Numbers." Eric Chapman | Sciencx - Accessed . https://www.scien.cx/2021/04/27/sharpen-your-ruby-working-with-numbers/
IEEE
" » Sharpen your Ruby: Working with Numbers." Eric Chapman | Sciencx [Online]. Available: https://www.scien.cx/2021/04/27/sharpen-your-ruby-working-with-numbers/. [Accessed: ]
rf:citation
» Sharpen your Ruby: Working with Numbers | Eric Chapman | Sciencx | https://www.scien.cx/2021/04/27/sharpen-your-ruby-working-with-numbers/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.