如何在Zend框架中验证浮点数/双精度是否等于或大于/小于最小值


How to validate in Zend Framework if a float/double is equal or greater/less than a min?

我有一个简单的问题,我还没有找到答案,那就是

如何使用内置的Zend验证器来测试float/double 是否大于或等于min?

我已经搜索了一个适合我的请求的答案,我在Zend框架中发现了这个问题GreaterOrEqual验证器,但我的有点不同。此外,我知道我可以创建自己的验证器或复制其中一个在网络上,像这个大于或等于验证器,但我想知道我如何用内置的验证器来做这个验证。

这是一个让你更好理解的例子。

如果我有一个整数,我可以这样实现这个目标:

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

相反,如果我有一个浮点数,我不能做这个技巧,正如许多程序员所知道的,试图用浮点数做一些肮脏的事情会产生很多问题,因为舍入问题(每个计算机科学家都应该知道关于浮点算术)。

Thanks to all

这不是你想要的,但我认为这是最简单的:关键是"包容"。

    $number->addValidator('Float');
    $number->addValidator('Between', false,array('min' => '5,5', 'max' => $greatest_number+1, 'inclusive' => true));
这里有所有的验证器:

Zend_Validate_Abstract Class Reference

所以你的问题的答案是'否',没有大于等于验证器的浮动

在我尝试了许多方法之后,我得出结论,实际上(Zend Framework版本1.11)不可能使用内置验证器(如Phil所建议的)来进行这种验证。

我真的希望他们在下一个版本中添加这个验证器。

如何使用

新Zend_Validate_Callback (函数($value) {如果($value>= 1) {返回true;}返回错误;});