89 lines
4.2 KiB
Markdown
89 lines
4.2 KiB
Markdown
---
|
|
title: Ruby Number Methods
|
|
---
|
|
Ruby provides a variety of built-in methods you may use on numbers. The following is an incomplete list of <a href='https://ruby-doc.org/core-2.2.0/Integer.html' target='_blank' rel='nofollow'>integer</a> and <a href='https://ruby-doc.org/core-2.2.0/Float.html#method-i-ceil' target='_blank' rel='nofollow'>float</a> methods.
|
|
|
|
## <a href='https://ruby-doc.org/core-2.2.0/Integer.html#method-i-even-3F' target='_blank' rel='nofollow'>Even</a>:
|
|
|
|
Use `.even?` to check whether or not an <a href='https://ruby-doc.org/core-2.2.0/Integer.html' target='_blank' rel='nofollow'>**integer**</a> is even. Returns a `true` or `false` **boolean**.
|
|
```Ruby
|
|
15.even? #=> false
|
|
4.even? #=> true
|
|
```
|
|
## <a href='https://ruby-doc.org/core-2.2.0/Integer.html#method-i-odd-3F' target='_blank' rel='nofollow'>Odd</a>:
|
|
|
|
Use `.odd?` to check whether or not an <a href='https://ruby-doc.org/core-2.2.0/Integer.html' target='_blank' rel='nofollow'>**integer**</a> is odd. Returns a `true` or `false` **boolean**.
|
|
```Ruby
|
|
15.odd? #=> true
|
|
4.odd? #=> false
|
|
```
|
|
|
|
## <a href='https://ruby-doc.org/core-2.2.0/Float.html#method-i-ceil' target='_blank' rel='nofollow'>Ceil</a>:
|
|
|
|
The `.ceil` method rounds <a href='https://ruby-doc.org/core-2.2.0/Float.html#method-i-ceil' target='_blank' rel='nofollow'>**floats**</a> **up** to the nearest number. Returns an <a href='https://ruby-doc.org/core-2.2.0/Integer.html' target='_blank' rel='nofollow'>**integer**</a>.
|
|
```Ruby
|
|
8.3.ceil #=> 9
|
|
6.7.ceil #=> 7
|
|
```
|
|
|
|
## <a href='https://ruby-doc.org/core-2.2.0/Float.html#method-i-floor' target='_blank' rel='nofollow'>Floor</a>:
|
|
|
|
The `.floor` method rounds <a href='https://ruby-doc.org/core-2.2.0/Float.html#method-i-ceil' target='_blank' rel='nofollow'>**floats**</a> **down** to the nearest number. Returns an <a href='https://ruby-doc.org/core-2.2.0/Integer.html' target='_blank' rel='nofollow'>**integer**</a>.
|
|
```Ruby
|
|
8.3.floor #=> 8
|
|
6.7.floor #=> 6
|
|
```
|
|
|
|
## <a href='https://ruby-doc.org/core-2.2.0/Integer.html#method-i-next' target='_blank' rel='nofollow'>Next</a>:
|
|
|
|
Use `.next` to return the next consecutive <a href='https://ruby-doc.org/core-2.2.0/Integer.html' target='_blank' rel='nofollow'>**integer**</a>.
|
|
```Ruby
|
|
15.next #=> 16
|
|
2.next #=> 3
|
|
-4.next #=> -3
|
|
```
|
|
|
|
## <a href='https://ruby-doc.org/core-1.8.7/Integer.html#method-i-pred' target='_blank' rel='nofollow'>Pred</a>:
|
|
|
|
Use `.pred` to return the previous consecutive <a href='https://ruby-doc.org/core-2.2.0/Integer.html' target='_blank' rel='nofollow'>**integer**</a>.
|
|
```Ruby
|
|
15.pred #=> 14
|
|
2.pred #=> 1
|
|
(-4).pred #=> -5
|
|
```
|
|
|
|
## <a href='https://ruby-doc.org/core-2.4.2/Object.html#method-i-to_s' target='_blank' rel='nofollow'>To String</a>:
|
|
|
|
Using `.to_s` on a number (<a href='https://ruby-doc.org/core-2.2.0/Integer.html' target='_blank' rel='nofollow'>**integer**</a>, <a href='https://ruby-doc.org/core-2.2.0/Float.html#method-i-ceil' target='_blank' rel='nofollow'>**floats**</a>, etc.) returns a <a href='https://ruby-doc.org/core-2.2.0/String.html' target='_blank' rel='nofollow'>string</a> of that number.
|
|
```Ruby
|
|
15.to_s #=> "15"
|
|
3.4.to_s #=> "3.4"
|
|
```
|
|
|
|
## <a href='https://ruby-doc.org/core-2.2.0/Integer.html#method-i-gcd' target='_blank' rel='nofollow'>Greatest Common Denominator</a>:
|
|
|
|
The `.gcd` method provides the greatest common divisor (always positive) of two numbers. Returns an <a href='https://ruby-doc.org/core-2.2.0/Integer.html' target='_blank' rel='nofollow'>**integer**</a>.
|
|
```Ruby
|
|
15.gcd(5) #=> 5
|
|
3.gcd(-7) #=> 1
|
|
```
|
|
|
|
## <a href='http://ruby-doc.org/core-2.2.0/Integer.html#method-i-round' target='_blank' rel='nofollow'>Round</a>:
|
|
|
|
Use `.round` to return a rounded <a href='https://ruby-doc.org/core-2.2.0/Integer.html' target='_blank' rel='nofollow'>**integer**</a> or <a href='https://ruby-doc.org/core-2.2.0/Float.html' target='_blank' rel='nofollow'>**float**</a>.
|
|
```Ruby
|
|
1.round #=> 1
|
|
1.round(2) #=> 1.0
|
|
15.round(-1) #=> 20
|
|
```
|
|
|
|
## <a href='http://ruby-doc.org/core-2.2.0/Integer.html#method-i-times' target='_blank' rel='nofollow'>Times</a>:
|
|
|
|
Use `.times` to iterate the given block ```int``` times.
|
|
```Ruby
|
|
5.times do |i|
|
|
print i, " "
|
|
end
|
|
#=> 0 1 2 3 4
|
|
```
|