4

答えが見つからない簡単な質問がありますが、それは

組み込みのZendValidatorを使用して、 float / dobuleがmin以上かどうかをテストするにはどうすればよいですか?

私はすでに私の要求に合う答えを探しました、そして私はこの質問をZend FrameworkのGreaterOrEqualバリデーターを発見しました、しかし私のものは少し異なります。さらに、独自のバリデーターを作成したり、このようなWeb上にあるバリデーターの1つをコピーしたりできることは知ってますが、組み込みのバリデーターを使用してこの検証を行う方法を知りたいです。

これは、理解を深めるための例です。

私が整数を持っていた場合、私はこの方法でこの目標を達成することができます:

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

代わりに、floatを使用している場合、このトリックを実行することはできません。多くのプログラマーが知っているように、floatを使用して汚いことをしようとすると、丸めの問題(すべてのコンピューター科学者が知っておくべきこと)のために多くの問題が発生する可能性があります。浮動小数点演算)。

ありがとうございます

4

3 に答える 3

2

それはまさにあなたが求めたものではありませんが、私はそれが最も単純だと思います: 鍵は「包括的」です.

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

ここにすべてのバリデータがあります:

Zend_Validate_Abstract クラス リファレンス

したがって、あなたの質問に対する答えは「いいえ」です。float の Greater Than or Equal Validator はありません。

于 2011-10-18T07:25:12.083 に答える
2

多くの方法を試した後、実際には (Zend Framework バージョン 1.11) 組み込みのバリデーターを使用してこの種の検証を行うことは不可能であると結論付けました (Phil の提案による)。

次のリリースでこのバリデーターが追加されることを切に願っています。

于 2011-10-20T00:22:36.920 に答える