lamansky / fraction
A class that represents a fraction. Supports conversion to/from floats, mathematical operations, negative fractions, and Unicode stringification.
Installs: 45 733
Dependents: 0
Suggesters: 0
Security: 0
Stars: 5
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=7.1.0
Requires (Dev)
- phpunit/phpunit: ^7
This package is not auto-updated.
Last update: 2025-02-10 09:55:26 UTC
README
A PHP class that represents a fraction. Converts to/from floats (0.25 ↔ ¼), simplifies fractions (⁴⁄₈ → ½), handles mathematical operations (½ + ⅓), supports negative fractions (−⅘), and does Unicode string output. Requires PHP 7.1 or above.
Installation
With Composer installed on your computer and initialized for your project, run this command in your project’s root directory:
composer require lamansky/fraction
Requires PHP 7.1 or above.
API
The library consists of a single class: Lamansky\Fraction\Fraction
.
Constructor Parameters
$a
(int or float): The numerator of the fraction (the number on top).$b
(int or float): The denominator of the fraction (the number on bottom).- Optional:
$negative
(bool or int): If set totrue
or-1
(or any negative number), the fraction will be negative. If set tofalse
or1
(or any positive number), the fraction will be positive. If omitted, the fraction will be negative only if$a
or$b
is negative (but not both). If provided, the value of$negative
will override whatever sign values$a
or$b
may have.
Static Method: fromFloat () : Fraction
Accepts one parameter (a float
number) and returns a Fraction
. The Fraction
will have the same sign value (positive/negative) as the float.
isNegative () : bool
No parameters. Returns true
if the fraction is negative; otherwise false
.
getSignMultiplier () : int
No parameters. Returns -1
if the fraction is negative, or 1
if it is positive.
getNumerator () : int
No parameters. Returns the numerator of the fraction (the number on top).
getMixedInteger () : int
No parameters. Returns the integer component of a mixed fraction. A mixed fraction is one which is simplified to use a whole number (e.g. ⁵⁄₄ → 1¼). Example:
$f = new Fraction(7, 2); echo $f->toString(); // 3 1/2 echo $f->getMixedInteger(); // 3 echo $f->getMixedNumerator(); // 1 echo $f->getDenominator(); // 2
If the fraction is not mixed (i.e. if the numerator is smaller than the denominator), this function will return 0
.
getMixedNumerator () : int
No parameters. Returns the numerator of a mixed fraction. A mixed fraction is one which is simplified to use a whole number (e.g. ⁵⁄₄ → 1¼). Example:
$f = new Fraction(5, 4); echo $f->getNumerator(); // 5 echo $f->getMixedNumerator(); // 1
If the fraction is not mixed (i.e. if the numerator is smaller than the denominator), this function will return the normal numerator.
getDenominator () : int
No parameters. Returns the denominator of the fraction (the number on bottom).
getParts () : array
No parameters. Returns an array with two elements: the numerator and the denominator.
getMixedParts () : array
No parameters. Returns an array with three elements: the mixed-fraction integer, the mixed-fraction numerator, and the denominator. For example: for the fraction 2¼, it would return [2, 1, 4]
.
toString () : string
No parameters. Returns an ASCII string representation of the fraction.
$f = new Fraction(-5, 4); echo $f->toString(); // '-1 1/4'
toUnicodeString () : string
No parameters. Returns a Unicode string representation of the fraction.
$f = new Fraction(-5, 4); echo $f->toUnicodeString(); // '−1¼'
toFloat () : float
No parameters. Divides the numerator by the denominator and returns a floating-point number.
$f = new Fraction(-5, 4); echo $f->toFloat(); // -1.25
clone () : Fraction
No parameters. Returns a Fraction
with the same numerator, denominator, and positive/negative sign.
absolute () : Fraction
No parameters. Clones the Fraction
, but makes it positive if it’s negative.
add (Fraction $other) : Fraction
Returns a Fraction
that is the sum of the current fraction and $other
.
Note that if $other
is a negative fraction, this will end up being subtraction (just like in math).
subtract (Fraction $other) : Fraction
Subtracts $other
from the current fraction and returns the result.
multiply (Fraction $other) : Fraction
Multiplies the current fraction by $other
and returns the result.
divide (Fraction $other) : Fraction
Divides the current fraction by $other
and returns the result.
Unit Tests
To run the development test suite, execute this command:
./vendor/phpunit/phpunit/phpunit tests