public function testIsFloat() { $this->assertTrue(SpoonFilter::isFloat(1)); $this->assertFalse(SpoonFilter::isFloat('a')); $this->assertTrue(SpoonFilter::isFloat(10000000000.0)); $this->assertFalse(SpoonFilter::isFloat('1e10')); $this->assertFalse(SpoonFilter::isFloat('1a10')); $this->assertTrue(SpoonFilter::isFloat(1.337)); $this->assertTrue(SpoonFilter::isFloat(-1.337)); $this->assertTrue(SpoonFilter::isFloat(100)); $this->assertTrue(SpoonFilter::isFloat(-100)); $this->assertFalse(SpoonFilter::isFloat('1.,35')); $this->assertFalse(SpoonFilter::isFloat('1,.35')); $this->assertTrue(SpoonFilter::isFloat('1,35', true)); $this->assertTrue(SpoonFilter::isFloat('-1,35', true)); $this->assertTrue(SpoonFilter::isFloat(65.0, true)); $this->assertTrue(SpoonFilter::isFloat('65.00')); $this->assertTrue(SpoonFilter::isFloat(65.01000000000001, true)); $this->assertTrue(SpoonFilter::isFloat('65.010', true)); $this->assertFalse(SpoonFilter::isFloat(array())); }
/** * Checks this field for numbers 0-9 and an optional - (minus) sign (in the beginning only). * * @return bool * @param string[optional] $error The error message to set. * @param bool[optional] $allowCommas Do you want to use commas as a decimal separator? */ public function isFloat($error = null, $allowCommas = false) { // filled if ($this->isFilled()) { // post/get data $data = $this->getMethod(true); // validate if (!isset($data[$this->attributes['name']]) || !SpoonFilter::isFloat($data[$this->attributes['name']], $allowCommas)) { if ($error !== null) { $this->setError($error); } return false; } return true; } // not submitted if ($error !== null) { $this->setError($error); } return false; }