14 throw new Exception(
'Excel requires 2 arguments for FLOOR');
31 public static function floor($number, $significance =
null)
33 if ($significance ===
null) {
41 return $e->getMessage();
61 public static function math($number, $significance =
null, $mode = 0)
68 return $e->getMessage();
71 return self::argsOk((
float) $number, (
float) $significance, (
int) $mode);
87 public static function precise($number, $significance = 1)
93 return $e->getMessage();
106 if ($significance == 0.0) {
109 if ($number == 0.0) {
113 return floor($number / abs($significance)) * abs($significance);
121 private static function argsOk(
float $number,
float $significance,
int $mode)
123 if (!$significance) {
129 if (self::floorMathTest($number, $significance, $mode)) {
130 return ceil($number / $significance) * $significance;
133 return floor($number / $significance) * $significance;
139 private static function floorMathTest(
float $number,
float $significance,
int $mode): bool
149 private static function argumentsOk(
float $number,
float $significance)
151 if ($significance == 0.0) {
154 if ($number == 0.0) {
158 return floor($number / $significance) * $significance;
161 return floor($number / $significance) * $significance;
An exception for terminatinating execution or to throw for unit testing.
const COMPATIBILITY_EXCEL
constants
static getCompatibilityMode()
Return the current Compatibility Mode.
static argsOk(float $number, float $significance, int $mode)
Avoid Scrutinizer complexity problems.
static precise($number, $significance=1)
FLOOR.PRECISE.
static floor($number, $significance=null)
FLOOR.
static argumentsOkPrecise(float $number, float $significance)
Avoid Scrutinizer problems concerning complexity.
static argumentsOk(float $number, float $significance)
Avoid Scrutinizer problems concerning complexity.
static floorMathTest(float $number, float $significance, int $mode)
Let FLOORMATH complexity pass Scrutinizer.
static math($number, $significance=null, $mode=0)
FLOOR.MATH.
static returnSign(float $number)
static validateNumericNullBool($number)
Many functions accept null/false/true argument treated as 0/0/1.
static validateNumericNullSubstitution($number, $substitute)
Validate numeric, but allow substitute for null.