PHPackages                             kdabrow/math - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. kdabrow/math

ActivePackage[Utility &amp; Helpers](/categories/utility)

kdabrow/math
============

Objective wrapper over BCMath

1.0.0(3y ago)18MITPHPPHP ^8.1

Since Feb 14Pushed 3y ago1 watchersCompare

[ Source](https://github.com/karoldabro/math)[ Packagist](https://packagist.org/packages/kdabrow/math)[ RSS](/packages/kdabrow-math/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

 [![GitHub Workflow Status](https://camo.githubusercontent.com/ad2da07c41b936d208792160458ba18dfd106aee06c4053bde48dfb048133363/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6b61726f6c646162726f2f6d6174682f7068702e796d6c)](https://camo.githubusercontent.com/ad2da07c41b936d208792160458ba18dfd106aee06c4053bde48dfb048133363/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6b61726f6c646162726f2f6d6174682f7068702e796d6c)[![Packagist Version](https://camo.githubusercontent.com/ca27ce3dc2c0810617b3e2a9477e3aa235e7eca557bf02c59573fd62174b8cce/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6b646162726f772f6d617468)](https://camo.githubusercontent.com/ca27ce3dc2c0810617b3e2a9477e3aa235e7eca557bf02c59573fd62174b8cce/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6b646162726f772f6d617468)

Math
====

[](#math)

Objective wrapper over BCMath

Installation
------------

[](#installation)

Install via composer

```
composer require kdabrow/math
```

Usage
-----

[](#usage)

First declare mutable number. Second string is validated and mutated to correct format. Here are examples with converted number in the comment:

```
use Kdabrow\Math\Number;

new Number("100"); // 100

new Number("-100"); // -100

new Number("100,11"); // 100.11

new Number("100.11"); // 100.11

new Number("10,000.11"); // 10000.11

new Number("10 000.11"); // 10000.11

new Number("10'000.11"); // 10000.11

new Number(".11"); // 0.11

new Number(",11"); // 0.11

new Number("0,11"); // 0.11

new Number("0.11"); // 0.11
```

Then use API provided by Number class. All methods (with the 'sqrt' exception) accept arguments in a given formats:

```
// numeric string
$number->add('100');

// Number object
$number->add(new Number('100'));

// array of strings
$number->add(['100', '100']);

// array of Number objects
$number->add([new Number('100'), new Number('100')]);

// object implementing ArrayAccess interface
$number->add(new Collection());

// many formats or same elements at the same time
$number->add('100', new Number('200'), ['100', new Number('200')]);
```

### Add

[](#add)

```
use Kdabrow\Math\Number;

$number = new Number('700');

$number->add('100'); // 800
```

### Subtract

[](#subtract)

```
use Kdabrow\Math\Number;

$number = new Number('700');

$number->subtract('100'); // 600
```

### Multiply

[](#multiply)

```
use Kdabrow\Math\Number;

$number = new Number('700');

$number->multiply('2'); // 1400
```

### Divide

[](#divide)

```
use Kdabrow\Math\Number;

$number = new Number('700');

$number->divide('2'); // 350
```

### Square root

[](#square-root)

```
use Kdabrow\Math\Number;

$number = new Number('16');

$number->sqrt(); // 4
```

### Power

[](#power)

```
use Kdabrow\Math\Number;

$number = new Number('2');

$number->pow('3'); // 8
```

### Is equal

[](#is-equal)

```
use Kdabrow\Math\Number;

$number = new Number('2');

$number->isEqual('3'); // false
$number->isEqual('2'); // true
$number->isEqual('1'); // false
```

### Is equal or bigger

[](#is-equal-or-bigger)

```
use Kdabrow\Math\Number;

$number = new Number('2');

$number->isEqualOrBigger('3'); // false
$number->isEqualOrBigger('2'); // true
$number->isEqualOrBigger('1'); // true
```

### Is equal or lower

[](#is-equal-or-lower)

```
use Kdabrow\Math\Number;

$number = new Number('2');

$number->isEqualOrLower('3'); // true
$number->isEqualOrLower('2'); // true
$number->isEqualOrLower('1'); // false
```

### Is lower

[](#is-lower)

```
use Kdabrow\Math\Number;

$number = new Number('2');

$number->isLower('3'); // true
$number->isLower('2'); // true
$number->isLower('1'); // false
```

### Is bigger

[](#is-bigger)

```
use Kdabrow\Math\Number;

$number = new Number('2');

$number->isBigger('3'); // false
$number->isBigger('2'); // true
$number->isBigger('1'); // true
```

Development
-----------

[](#development)

To run unit tests go into project folder and type in the console

```
vendor/bin/phpunit
```

Package contains docker container capable of running tests

```
docker compose run php vendor/bin/phpunit
```

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1189d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/6e9a44d589f2789ab19994974caa0f6dcb43370177c14a3a6eaa341a85f22571?d=identicon)[kdabrow](/maintainers/kdabrow)

---

Top Contributors

[![karoldabro](https://avatars.githubusercontent.com/u/20278897?v=4)](https://github.com/karoldabro "karoldabro (6 commits)")

---

Tags

phptestsbcmath

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/kdabrow-math/health.svg)

```
[![Health](https://phpackages.com/badges/kdabrow-math/health.svg)](https://phpackages.com/packages/kdabrow-math)
```

###  Alternatives

[imanghafoori/laravel-anypass

A minimal yet powerful package to help you in development.

21421.6k](/packages/imanghafoori-laravel-anypass)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
