14 throw new Exception(
'Excel requires 2 arguments for FLOOR');
31 public static function floor($number, $significance = null)
33 if ($significance === null) {
34 self::floorCheck1Arg();
41 return $e->getMessage();
44 return self::argumentsOk((
float) $number, (
float) $significance);
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();
96 return self::argumentsOkPrecise((
float) $number, (
float) $significance);
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;
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.
const COMPATIBILITY_EXCEL
constants
static floorMathTest(float $number, float $significance, int $mode)
Let FLOORMATH complexity pass Scrutinizer.
static argumentsOk(float $number, float $significance)
Avoid Scrutinizer problems concerning complexity.
static floor($number, $significance=null)
FLOOR.
static math($number, $significance=null, $mode=0)
FLOOR.MATH.
static argumentsOkPrecise(float $number, float $significance)
Avoid Scrutinizer problems concerning complexity.
static returnSign(float $number)
static argsOk(float $number, float $significance, int $mode)
Avoid Scrutinizer complexity problems.
static precise($number, $significance=1)
FLOOR.PRECISE.
static getCompatibilityMode()
Return the current Compatibility Mode.