• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/internals/input.php
  • Класс: BitrixSaleInternalsInputNumber
  • Вызов: Number::getErrorSingle
static function getErrorSingle(array $input, $value)
{
	$errors = array();

	if (is_numeric($value))
	{
		$value = (double) $value;

		if (!empty($input['MIN']) && $value < $input['MIN'])
			$errors['MIN'] = Loc::getMessage('INPUT_NUMBER_MIN_ERROR', array("#NUM#" => $input['MIN']));

		if (!empty($input['MAX']) && $value > $input['MAX'])
			$errors['MAX'] = Loc::getMessage('INPUT_NUMBER_MAX_ERROR', array("#NUM#" => $input['MAX']));

		if (!empty($input['STEP']))
		{
			$step = (double) $input['STEP'];

			$value = (double) abs($value - ($input['MIN'] ? $input['MIN'] : 0.0));

			if (! ($value / pow(2.0, 53) > $step))
			{
				$remainder = (double) abs($value - $step * round($value / $step));
				$acceptableError = (double) ($step / pow(2.0, 24));

				if ($acceptableError < $remainder && ($step - $acceptableError) > $remainder)
					$errors['STEP'] = Loc::getMessage('INPUT_NUMBER_STEP_ERROR', array("#NUM#" => $input['STEP']));
			}
		}
	}
	else
	{
		$errors['NUMERIC'] = Loc::getMessage('INPUT_NUMBER_NUMERIC_ERROR');
	}

	return $errors;
}