diff --git a/src/Schema/Type/Number.php b/src/Schema/Type/Number.php index e52c6ab..d909dc1 100644 --- a/src/Schema/Type/Number.php +++ b/src/Schema/Type/Number.php @@ -50,7 +50,11 @@ public function validate(mixed $value, callable $fail): void } } - if ($this->multipleOf !== null && $value % $this->multipleOf !== 0) { + if ( + $this->multipleOf !== null && + (float) $value !== 0.0 && + $value % $this->multipleOf !== 0 + ) { $fail(sprintf('must be a multiple of %d', $this->multipleOf)); } } @@ -85,7 +89,7 @@ public function maximum(?float $maximum, bool $exclusive = false): static public function multipleOf(?float $number): static { - if ($number <= 0) { + if ($number !== null && $number <= 0) { throw new InvalidArgumentException('multipleOf must be a positive number'); }