/** * Returns the lowest integer below $value divisible by divider * * @param numeric $value Numeric value * @param integer $div Optional, divisor * @return numeric */ function boundFloor($value, $div=5) { if ( $div < 2 ) { $div = 5; } $r = $value % $div; return floor($value - $r); } /** * Returns the highest integer above $value divisible by divider * * @param numeric $value Numeric value * @param integer $div Optional, divider * @return numeric */ function boundCeil($value, $div=5) { if ( $div < 2 ) { $div = 5; } $r = ($value + $div) % $div; return ceil($value + $div - $r); } /** * Example */ $x = range(0, 20); $div = 10; foreach ($x as $v) { printf("% 3d - % 3d % 3d\n", $v, boundFloor($v, $div), boundCeil($v, $div)); }
Saturday, 4 April 2009
Extended floor and ceil functions
I do not remember why i done this. Maybe this was used somewhere. Maybe i had practised in algorithms simply. Do not remember.
There are two functions allowing round fractions down/up accordingly divider.
Ярлыки:
feel-sorry-for-throw-out,
php
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment