calog/vendor/mruby/mrbgems/mruby-rational/README.md
2026-07-04 20:25:00 -05:00

61 lines
1.9 KiB
Markdown
Vendored

# mruby-rational
This mrbgem provides a `Rational` class for mruby, allowing you to work with rational numbers (fractions).
## Usage
To use the `Rational` class, you first need to include the mrbgem in your mruby build.
### Include in build_config.rb
Add the following line to your `build_config.rb` file:
```ruby
conf.gem :core => 'mruby-rational'
```
### Creating Rational Objects
You can create `Rational` objects using the `Rational()` method:
```ruby
r1 = Rational(1, 2) # Represents 1/2
r2 = Rational(3, 4) # Represents 3/4
```
### Arithmetic Operations
The `Rational` class supports standard arithmetic operations:
```ruby
r_add = Rational(1, 2) + Rational(1, 3) # (5/6)
r_sub = Rational(1, 2) - Rational(1, 3) # (1/6)
r_mul = Rational(1, 2) * Rational(1, 3) # (1/6)
r_div = Rational(1, 2) / Rational(1, 3) # (3/2)
```
## Available Methods
The `Rational` class provides the following important methods:
- `numerator`: Returns the numerator of the rational number.
- `denominator`: Returns the denominator of the rational number.
- `to_f`: Converts the rational number to a `Float`.
- `to_i`: Converts the rational number to an `Integer` (truncates towards zero).
- `to_s`: Returns a string representation of the rational number (e.g., "1/2").
- `inspect`: Returns a string representation suitable for debugging (e.g., "(1/2)").
- `==`: Checks for equality with another number.
- `<=>`: Compares the rational number with another number.
- `positive?`: Returns `true` if the rational number is greater than zero.
- `negative?`: Returns `true` if the rational number is less than zero.
## Error Handling
The mrbgem handles common errors such as:
- **DivisionByZeroError**: Raised when attempting to create a rational number with a denominator of zero.
- **RangeError**: Raised in case of integer overflow during calculations.
## License
mruby-rational is licensed under the MIT License. See LICENSE for details.