Как проверить в Zend Framework, если число с плавающей запятой / double равно или больше / меньше минуты? - PullRequest
4 голосов
/ 18 октября 2011

У меня простой вопрос, на который я не нашел ответа, и это

Как я могу использовать встроенный Zend Validator, чтобы проверить, является ли float / dobule Больше или равно минимуму?

Я уже искал ответ, который соответствует моему запросу, и я обнаружил этот вопрос Валидатор GreaterOrEqual в Zend Framework , но мой немного отличается. Кроме того, я знаю, что могу создать свой собственный валидатор или скопировать один из тех, которые есть в сети, например этот Больше или равноценный валидатор , но я хотел бы знать, как я могу сделать эту проверку с помощью встроенного в валидаторах.

Это пример, который поможет вам лучше понять.

Если бы у меня было целое число, я мог бы достичь этой цели следующим образом:

$Validators = array(new Zend_Validate_Int(), new Zend_Validate_GreaterThan($min - 1));
// Validate the number

Вместо этого, если бы у меня был float, я не смогу сделать этот трюк, и, как знают многие программисты, попытка сделать грязные вещи с помощью float может создать много проблем из-за проблемы округления ( Что Каждый учёный-компьютерщик должен знать об арифметике с плавающей точкой ).

Спасибо всем

Ответы [ 3 ]

2 голосов
/ 20 октября 2011

После того, как я попробовал много способов, я пришел к выводу, что на самом деле (Zend Framework версия 1.11) невозможно выполнить такую ​​проверку с использованием встроенных валидаторов (как предложил Фил).

Я действительнонадеюсь, что они добавят этот валидатор в следующих выпусках.

2 голосов
/ 18 октября 2011

Это не совсем то, о чем Вы просили, но я думаю, что это самое простое: Ключ является «включенным».

    $number->addValidator('Float');
    $number->addValidator('Between', false,array('min' => '5,5', 'max' => $greatest_number+1, 'inclusive' => true));

здесь У вас есть все валидаторы:

Zend_Validate_Abstract Ссылка на класс

поэтому ответ на Ваш вопрос «нет», для поплавков не существует «Больше чем» или «Равный валидатор».

0 голосов
/ 29 августа 2013

Как насчет использования

new Zend_Validate_Callback (функция ($ value) {if ($ value> = 1) {return true;} return false;});

...