function test_unformatNumber() { global $phpAds_DecimalPoint; if (isset($phpAds_DecimalPoint)) { $remember_phpAds_DecimalPoint = $phpAds_DecimalPoint; } //set default decimalPoint $phpAds_DecimalPoint = "."; $this->assertEqual("12345.67", OA_Admin_NumberFormat::unformatNumber("12.345,67")); //test "," as decimal separator $this->assertEqual("12345.67", OA_Admin_NumberFormat::unformatNumber("+12,345.67")); //test "+" symbol $this->assertEqual("12345.67", OA_Admin_NumberFormat::unformatNumber("12 345.67")); //test " " as thousands separators $this->assertEqual("-12345678", OA_Admin_NumberFormat::unformatNumber("-12,345,678")); //test "-" symbol $this->assertEqual("12345678", OA_Admin_NumberFormat::unformatNumber(" 12.345.678 ")); //test white spaces $this->assertFalse(OA_Admin_NumberFormat::unformatNumber("12.34.567")); //test missing numeral between thousands separators $this->assertEqual(".123", OA_Admin_NumberFormat::unformatNumber(".123")); //decimal separator at begining $this->assertEqual(".123", OA_Admin_NumberFormat::unformatNumber(",123")); //decimal separator at begining //test hazard situations; results are determined by default decimal separator $this->assertEqual("1234", OA_Admin_NumberFormat::unformatNumber("1,234")); $phpAds_DecimalPoint = ","; //set default decimalPoint $this->assertEqual("1.234", OA_Admin_NumberFormat::unformatNumber("1,234")); //single dot always as decimal point! $this->assertEqual("1.234", OA_Admin_NumberFormat::unformatNumber("1.234")); //clean up if (isset($remember_phpAds_DecimalPoint)) { $phpAds_DecimalPoint = $remember_phpAds_DecimalPoint; } else { unset($phpAds_DecimalPoint); } }
/** * * Correction revenue from other formats (23234,34 or 23 234,34 or 23.234,34) * to format acceptable by is_numeric (23234.34) * * @param array $aFields Array of exported form fields * @param array $errors Array of pear errors * @param String $field Numeric field which will be checked and converted * @param String $errrorString Error string used in case format of the field is not correct */ function correctAdnCheckNumericFormField($aFields, $errors, $field, $errrorString) { $corrected = OA_Admin_NumberFormat::unformatNumber($aFields[$field]); if ($corrected !== false) { $aFields[$field] = $corrected; } if (!empty($aFields[$field]) && !is_numeric($aFields[$field])) { // Suppress PEAR error handling to show this error only on top of HTML form PEAR::pushErrorHandling(null); $errors[] = PEAR::raiseError($GLOBALS[$errrorString]); PEAR::popErrorHandling(); } }