pamil / rounder
Simple round utility
v2.0
2014-01-28 23:37 UTC
Requires
- php: >=5.3
Requires (Dev)
- phpunit/phpunit: ~3.7
This package is auto-updated.
Last update: 2024-11-29 02:26:41 UTC
README
Simple round utility for PHP as equivalent for \round()
function. Provides interface and default, safe, unit-tested implementation for rounding:
- half up (half towards positive infinity)
- half down (half towards negative infinity)
- half even
- half odd
- half away from zero (half towards infinity)
- half towards zero (half away from infinity)
- up (towards positive infinity)
- down (towards negative infinity)
- away from zero (towards infinity)
- towards zero (away from infinity)
Unlike round()
, where PHP_ROUND_HALF_UP
rounding mode means rounding half away from zero and PHP_ROUND_HALF_DOWN
means rounding half towards zero, Rounder provides correct implementation of these rounding modes.
Supports PHP >= 5.3 and HHVM.
How to use?
- Run
composer require "pamil/rounder:~2.0"
- Play with it!
use Pamil\Rounder\Rounder; use Pamil\Rounder\BasicRounder; $rounder = new BasicRounder(); // Use new API $rounder->roundHalfUp(12.15, 1); // 12.2 $rounder->roundHalfUp(-12.315, 2); // -12.31 // Or old round API $rounder->round(24.5); // 25 $rounder->round(24.5, 0, Rounder::ROUND_DOWN); // 24 // You can even use old PHP_ROUND_* constants // Warning: as mentioned above, PHP_ROUND_HALF_UP and // PHP_ROUND_HALF_DOWN have been badly named, so they // aren't equivalent for Rounder::ROUND_HALF_UP and // Rounder::ROUND_HALF_DOWN. They are 100% back compatibile, // $rounder->round() returns the same values round() will return. $rounder->round(23.5, 0, PHP_ROUND_HALF_EVEN); // 24 $rounder->round(22.5, 0, PHP_ROUND_HALF_EVEN); // 22