Zendで数値が浮動小数点かどうかを確認しようとしています。このコードを呼び出すと:
Zend_Locale_Format::isFloat('4.202', array('locale' => 'de'));
trueを返します。ただし、これは次のとおりです。
Zend_Locale_Format::isFloat('4.20', array('locale' => 'de'));
falseを返します。なんで?
Zendで数値が浮動小数点かどうかを確認しようとしています。このコードを呼び出すと:
Zend_Locale_Format::isFloat('4.202', array('locale' => 'de'));
trueを返します。ただし、これは次のとおりです。
Zend_Locale_Format::isFloat('4.20', array('locale' => 'de'));
falseを返します。なんで?
これは、ドイツ語ロケールがピリオド.
を千の区切り文字として使用しており、2番目の例ではその区切り記号が間違った場所にあるためです。
例えば:
13.001,45
true
に渡されたときに期待値を与える必要がありisFloat()
ます。
ところで、次の4.202
ように解釈されます4202
(これは分数のない浮動小数点と見なすこともできます)。
参照:正規化とローカリゼーション、セクション「29.3.6。浮動小数点値のテスト」