private static function validateNaturalFloat($key, $value)
    {
        $value = filter_var($value, FILTER_VALIDATE_FLOAT);
        if ($value === false) {
            throw new \InvalidArgumentException("Option[$key] must be float.");
        }
        if ($value < 0.0) {
            throw new \DomainException("Option[$key] must be positive or zero.");
        }
        return $value;
    }