PHPackages                             jstewmc/evaluate-number - 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. jstewmc/evaluate-number

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

jstewmc/evaluate-number
=======================

Evaluate a variety of number formats to integers and floats

v0.1.0(9y ago)013MITPHPPHP ^7.0

Since Mar 5Pushed 7y ago1 watchersCompare

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

READMEChangelogDependencies (1)Versions (2)Used By (0)

evaluate-number
===============

[](#evaluate-number)

Evaluate a variety of US number formats to their integer or float equivalent including:

- fractions (e.g., `'1/2'`),
- mixed numbers (e.g., `'1 1/2'`),
- comma-separated values (e.g., `'1,000'`),
- ordinal numbers (e.g., `'first'`),
- cardinal numbers (e.g., `'one hundred'`),
- dollars (e.g., `$1,000`), and
- percents (e.g., `10%`).

```
namespace Jstewmc\EvaluateNumber;

// instantiate the service
$service = new EvaluateNumber();

// evaluate some stuff!
$service(true);            // returns (int) 1
$service(1);               // returns (int) 1
$service('1');             // returns (int) 1
$service(1.5);             // returns (float) 1.5
$service('1.5');           // returns (float) 1.5
$service('1 1/2');         // returns (float) 1.5
$service('3/2');           // returns (float) 1.5
$service('3\2');           // returns (float) 1.5
$service('1000');          // returns (int) 1000
$service('1,000');         // returns (int) 1000
$service('1,000.5');       // returns (float) 1000.5
$service('1st');           // returns (int) 1
$service('second');        // returns (int) 2
$service('one hundred');   // returns (int) 100
$service('10%');           // returns (float) 0.1
$service('$1000')          // returns (int) 1000
$service('1,0,0');         // returns 0
$service('abc');           // returns 0
$service(array());         // returns 0
$service(array('foo'));    // returns 1
$service(new stdClass());  // returns 1
```

Rules
-----

[](#rules)

Wherever possible, this library follows the conventions of PHP's native [intval()](http://php.net/manual/en/function.intval.php) and [floatval()](http://php.net/manual/en/function.floatval.php) functions.

### Integers

[](#integers)

Integers are returned as-is:

```
namespace Jstewmc\EvaluateNumber;

$service = new EvaluateNumber();

$service(-1);  // returns (int) -1
$service(0);   // returns (int) 0
$service(1);   // returns (int) 1
```

### Floats

[](#floats)

Floats are returned as-is:

```
namespace Jstewmc\EvaluateNumber;

$service = new EvaluateNumber();

$service(-1.0);  // returns (float) -1.0
$service(0.0);   // returns (float) 0.0
$service(1.0);   // returns (float) 1.0
```

### Booleans

[](#booleans)

Booleans are returned as their integer equivalent:

```
namespace Jstewmc\EvaluateNumber;

$service = new EvaluateNumber();

$service(true);   // returns (int) 1
$service(false);  // returns (int) 0
```

### Strings

[](#strings)

Strings in the following formats are returned as their integer or float equivalents:

- Numeric strings (e.g., `'1'`);
- Thousands-separated numbers (e.g., `'1,000'`);
- Fractions (e.g., '`'1/2'`);
- Mixed numbers (e.g., `'1 1/2'`);
- Ordinal numbers (e.g., `'one hundred'`);
- Cardinal numbers (e.g., `'first'`);
- Suffixed numbers (e.g., `'1st'`);
- Pecents (e.g., `'1%'`); and,
- Dollars (e.g., `'$1,000'`).

All other strings return 0.

```
namespace Jstewmc\EvaluateNumber;

$service = new EvaluateNumber();

$service('1');            // returns (int) 1
$service('1,000');        // returns (int) 1000
$service('1/2');          // returns (float) 0.5
$service('1 1/2');        // returns (float) 1.5
$service('one hundred');  // returns (int) 100
$service('first');        // returns (int) 1
$service('1st');          // returns (int) 1
$service('1%');           // returns (float) 0.01
$service('$1,000');       // returns (int) 1000
$service('foo');          // returns (int) 0
```

### Arrays

[](#arrays)

Empty arrays return 0, and non-empty arrays return 1:

```
namespace Jstewmc\EvaluateNumber;

$service = new EvaluateNumber();

$service([]);              // returns 0
$service(['foo']);         // returns 1
$service(['foo', 'bar']);  // returns 1
```

### Objects

[](#objects)

This method SHOULD NOT be used on objects. However, unlike the native PHP intval() or floatval() methods, this library will not raise an error. Instead, objects are always returned as 1.

```
namespace Jstewmc\EvaluateNumber;

$service = new EvaluateNumber();

$service(new SplObject());  // returns 1
```

That's about it!

Author
------

[](#author)

[Jack Clayton](mailto:clayjs0@gmail.com)

License
-------

[](#license)

[MIT](https://github.com/jstewmc/evaluate-number/blob/master/LICENSE)

Version
-------

[](#version)

### 0.1.0, March 5, 2017

[](#010-march-5-2017)

- Initial release

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity48

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

3352d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/50fecae0a7fd2119681bc133e496e7166b01a59f850a3c909e100bd427c6b28b?d=identicon)[Jstewmc](/maintainers/Jstewmc)

---

Top Contributors

[![jstewmc](https://avatars.githubusercontent.com/u/1192893?v=4)](https://github.com/jstewmc "jstewmc (8 commits)")

---

Tags

phpnumberevaluatejstewmc

### Embed Badge

![Health badge](/badges/jstewmc-evaluate-number/health.svg)

```
[![Health](https://phpackages.com/badges/jstewmc-evaluate-number/health.svg)](https://phpackages.com/packages/jstewmc-evaluate-number)
```

###  Alternatives

[wilon/php-number2chinese

PHP数字转为汉字描述、人民币大写方法。

14632.0k1](/packages/wilon-php-number2chinese)

PHPackages © 2026

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