RSS Feed

Numbers in Ruby

June 1, 2012 by szabcsee

A friend of mine got a trial account for lynda.com and offered it to me so I immediately jumped on their Ruby essentials course. Lynda.com is a pretty good investment if you have time. They offer a wide range of courses in all fields and they are really good quality. Well presented, easy to understand, lot of practical examples and the 25 bucks / month is relatively cheap.

But let’s get into Ruby and it’s numbers. I’m not going to go to all details but show you a few interesting stuff which are unique in Ruby or they were interesting for me.

Integer and Float

So we all know the difference between them.

Integer: 10

Float: 10.2345433

And how we can find out what is what (if we don’t notice for the first time):

10.2345433.class
=> Float

The important thing in Ruby is if you say 10 / 3 the result might surprise you. You are going to get 3 as a result. This is the biggest pitfall as a beginner you can run into in Ruby. As Integer divided by Integer will return an Integer. If precision is important to you, you need to tell that to Ruby. But if we do 10.0 / 3.0 Ruby understands that precision is important and returns 3.33333333333 .

 

Functions to usewith numbers

12345678.6789.round => 12345678

.round will round up the numbers for you.

12345.6789.to_i => 12345

.to_i converts your floats into integers by rounding them down.

12345.6789.floor => 12345

.floor will make sure that the number is always rounded down while

12345.6789.ceil => 12346

.ceil will do exactly the opposite and round them up (to the ceiling).

Integer, Bignum, Fixnum

Ruby integers are just numbers and make perfect sense. In Ruby they are objects of class Fixnum or Bignum. The Fixnum and Bignum classes represent integers of differing sizes.

1234.class => Fixnum
12354578.class => Bignum

And there is no Integer. But we don’t need to worry about this as the only difference between Bignum and Fixnum is the way how Ruby store these numbers as it uses more memory to store Bignums and does it more efficiently with Fixnums.

Integers can be also negative numbers and we can use a few other functions with them:

-200.abs => 200

gets the absolute value.

200.next => 201

gives the next number.

If you have any questions, comments or advise, please do share it in the comment section below.


No Comments »

No comments yet.

Leave a Reply

Your email address will not be published. Required fields are marked *

Connect with Facebook

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>