Если кто-то ищет обратную функцию PHP number_format
(по названию этого вопроса), вот одна:
/**
* @param string $string
* @param int $decimals
* @param string $dec_point
* @param string $thousands_sep
*
* @throws InvalidArgumentException
* @return float
*/
function number_from_format($string, $decimals = 0, $dec_point = '.', $thousands_sep = ',') {
$buffer = $string = (string) $string;
$buffer = strtr($buffer, array($thousands_sep => '', $dec_point => '.'));
$float = (float) $buffer;
$test = number_format($float, $decimals, $dec_point, $thousands_sep);
if ($test !== $string) {
throw new InvalidArgumentException(sprintf('Unable to parse float from "%s" as number "%s".', $string, $test));
}
return $float;
}
Пример использования:
var_dump(number_from_format('1,200.00', 2)); # double(1200)