Nobita Nobita - 5 months ago 18
Ruby Question

Difference between Integer(value) and value.to_i

Given a string object like this:

twohundred = "200"


What is the difference between doing:

Integer(twohundred) #=> 200


and:

twohundred.to_i #=> 200


Is there any difference? Is it recommended to use one among the other one?

Answer

Integer(num) will throw an ArgumentError exception if num isn't a valid integer (you can specify the base).

num.to_i will convert as much as it can.

For example:

"2hi".to_i 
#=> 2

Integer("2hi")
#=> throws ArgumentError

"hi".to_i
#=> 0

Integer("hi")
#=> throws ArgumentError

"2.0".to_i
#=> 2

Integer("2.0")
#=> throws ArgumentError
Comments