# Ruby Number Examples: Integer, Float, zero and eql

Use numbers and the zero and eql methods. Convert strings into Integers and Floats.**Numbers.** Inside, the cave is still. Lights appear upon the cold dark surface wall. Each light is on or off (like a bit, which is set or not set). The lights could represent numbers.

**Ruby examples.** Numeric types and conversions are done in Ruby code (not usually in caves). Many programs use the Integer and Float built-in methods.

**Integer, Float.** Here we convert string data to number types. A string may contain digits but not be a number. With the Integer conversion, we convert it to one. We also use Float.

**Here:** We convert the string "1234" into an Integer. And we convert a string with floating-point data into a Float.

**Then:** We add the 2 numbers together. This shows they are no longer strings, which could not be added in this way.

**Ruby program that converts strings, numbers**
*# Two strings with numeric contents.
*value1 = *"1234"*
value2 = *"1234.5678"**
# Convert strings to numbers.
*number1 = __Integer__(value1)
number2 = __Float__(value2)*
# Print numbers.
*print *"Number1: "*, number1, *"\n"*
print *"Number2: "*, number2, *"\n"**
# Add numbers together.
# ... Could not be done with strings.
*number3 = number1 + number2*
# Print final number.
*print *"Number3: "*, number3, *"\n"*
**Output**
Number1: 1234
Number2: 1234.5678
Number3: 2468.5678

**Exponents.** We can directly use exponents, with the two-star operator. In this program, we raise a value to the power of two, and then to the power of three.

**Tip:** More advanced mathematical operations are available as methods in the Math class.

**Ruby program that uses exponents**
*# An initial value.
*value = 3*
# Square the value.
*square = value *** 2**
# Cube the value.
*cube = value *** 3**
# Display our results.
*puts square
puts cube
**Output**
9
27

**Zero, nonzero.** Zero() returns true or false. If the number is zero, it returns true. Otherwise, it returns false. Nonzero meanwhile returns the original number if it is not zero.

**And:** If the number is zero, nonzero returns nil. So it returns the number with 0 changed to nil.

**Ruby program that uses zero, nonzero**
value = 0
if value.__zero?__
puts *"A"*
end
if value.__nonzero?__
puts *"B"** # Not reached.
*end
value = 1
if value.__nonzero?__
puts *"C"*
end
**Output**
A
C

**Eql operator.** Unlike the "==" operator, eql compares types. So a floating point number, like 1.0, is not equal to an Integer number like 1. The == operator treats them as equal.

**Tip:** Using the == operator is superior in most programs. The eql method just adds complexity—1.0 usually should equal 1.

**Ruby program that uses eql**
value1 = 1
value2 = 1.0
value3 = 1
if value1.__eql?__ value2
puts "A"* # Not reached.
*end
if value1 == value2
puts "B"
end
if value1.__eql?__ value3
puts "C"
end
**Output**
B
C

**Random numbers.** With the rand method we generate a pseudo-random number. The srand method is used to seed our random number generator.

rand**Math.** Some numeric operations can be done directly, with operators like + or minus. But many math methods exist, included for easy access. These handle more complex things like sqrt.

Math**A summary.** Tasks that involve numbers are often language-specific. In Ruby, we have many helpful operators available on numbers. We convert and manipulate numbers with ease.

© 2007-2020 Sam Allen. Every person is special and unique. Send bug reports to info@dotnetperls.com.