note 96131 added to function.fmod
| From: | dePijd at osu1 dot php dot net | Date: | Wed, 10 Feb 2010 14:37:26 +0000 |
| Subject: | note 96131 added to function.fmod | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-165827@lists.php.net to get a copy of this message | ||
This class ran through several unit tests and fixes all failures found in bugs.php.net
<?php
abstract class MyNumber {
public static function isZero($number, $precision = 0.0000000001)
{
$precision = abs($precision);
return -$precision < (float)$number && (float)$number < $precision;
}
public static function isEqual($number1, $number2)
{
return self::isZero($number1 - $number2);
}
public static function fmod($number1, $number2)
{
$rest = fmod($number1, $number2);
if (self::isEqual($rest, $number2)) {
return 0.0;
}
if (mb_strpos($number1, ".") === false) {
$decimals1 = 0;
} else {
$decimals1 = mb_strlen($number1) - mb_strpos($number1, ".") - 1;
}
if (mb_strpos($number2, ".") === false) {
$decimals2 = 0;
} else {
$decimals2 = mb_strlen($number2) - mb_strpos($number2, ".") - 1;
}
return (float)round($rest, max($decimals1, $decimals2));
}
}
?>
----
Server IP: 85.214.154.209
Probable Submitter: 89.244.130.51
----
Manual Page -- http://www.php.net/manual/en/function.fmod.php
Edit -- https://master.php.net/note/edit/96131
Del: integrated -- https://master.php.net/note/delete/96131/integrated
Del: useless -- https://master.php.net/note/delete/96131/useless
Del: bad code -- https://master.php.net/note/delete/96131/bad+code
Del: spam -- https://master.php.net/note/delete/96131/spam
Del: non-english -- https://master.php.net/note/delete/96131/non-english
Del: in docs -- https://master.php.net/note/delete/96131/in+docs
Del: other reasons-- https://master.php.net/note/delete/96131
Reject -- https://master.php.net/note/reject/96131
Search -- https://master.php.net/manage/user-notes.php