Home

Awesome

021/numeric

A PHP library to convenient work with arbitrary precision numbers.

<p> <a href="https://github.com/021-projects/numeric/actions/workflows/tests-php-8.1.yml"><img src="https://github.com/021-projects/numeric/actions/workflows/tests-php-8.1.yml/badge.svg?branch=main" alt="Tests"></a> <a href="https://packagist.org/packages/021/numeric"><img src="https://img.shields.io/packagist/dt/021/numeric" alt="Total Downloads"></a> <a href="https://packagist.org/packages/021/numeric"><img src="https://img.shields.io/packagist/v/021/numeric" alt="Latest Stable Version"></a> <a href="https://packagist.org/packages/021/numeric"><img src="https://img.shields.io/packagist/l/021/numeric" alt="License"></a> </p>

Requirements

Library is based on Brick\Math package:

Although the library can work seamlessly on any PHP installation, it is highly recommended that you install the GMP or BCMath extension to speed up calculations. The fastest available calculator implementation will be automatically selected at runtime.

Installation

You can install the package via composer:

composer require 021/numeric

Usage

use function O21\Numeric\Helpers\num;

$number = num('123.456');

echo $number->add('0.544')->get();

Calculations

All computational functions accept as an argument a value of one of the following types: string, float, int, \O21\Numeric\Numeric, \Brick\Math\BigNumber.

FunctionDescription
addAdds a value to a number
subSubtracts a value from a number
mulMultiplies a number by a value
divDivides a number by a value

Comparisons

All comparison functions accept as an argument a value of one of the following types: string, float, int, \O21\Numeric\Numeric, \Brick\Math\BigNumber.

FunctionDescription
equalsChecks if two values are equal. It returns true if the values are equal and false otherwise.
greaterThanCompares two values and returns true if the first value is greater than the second one.
lessThanCompares two values and returns true if the first value is less than the second one.
greaterThanOrEqualCompares two values and returns true if the first value is greater than or equal to the second one.
lessThanOrEqualCompares two values and returns true if the first value is less than or equal to the second one.

Formatting

FunctionDescription
positiveReturns a number represented as positive.
negativeReturns a number represented as negative.
scaleConverts a number to a given scale, using rounding if necessary.
getReturns a number as string. By default removes trailing zeros. Use the raw: true option to disable this.
__toStringReturns a get function result

Helpers

Namespace: O21\Numeric\Helpers

FunctionDescription
numCreates a new Numeric instance
num_minReturns a minimum value from a given values. Support any of these types: string, float, int, \O21\Numeric\Numeric, \Brick\Math\BigNumber
num_maxReturns a maximum value from a given values. Support any of these types: string, float, int, \O21\Numeric\Numeric, \Brick\Math\BigNumber
to_bnConverts any of these types string, float, int, \O21\Numeric\Numeric, \Brick\Math\BigNumber to \Brick\Math\BigNumber