In reply to daniel at danielphenry dot com example note beneath. The given example by Daniel returns false under PHP7.x, which is a normal behavior since NumberFormatter::parseCurrency() is a method for parsing currency strings. It is trying to split up the given string in a float and a currency. While using strict types under PHP7 the following example makes it more clearer.<?phpdeclare(strict_types=1);namespace MMNewmedia;$oParser = new \NumberFormatter('de_DE', \NumberFormatter::CURRENCY);var_dump($oParser->parseCurrency("1.234.567,89\xc2\xa0€", $currency), $currency));?>This example returns: "float(1234567.89) string(3) "EUR"This is the expected behavior.The following example runs into a type error, which is absolutely right, since this method is vor parsing strings and not vor formatting floats into currency strings.<?phpdeclare(strict_types=1);namespace MMNewmedia;try { $oCurrencyParser = new \NumberFormatter('de_DE', \NumberFormatter::CURRENCY); $currency = 'EUR'; var_dump($oCurrencyParser->parseCurrency(1.234, $currency), $currency);} catch (\TypeError $oTypeError) { var_dump($oTypeError->getMessage());}?>This example returns "NumberFormatter::parseCurrency() expects parameter 1 to be string, float given".If you want to parse floats into a currency string use the http://php.net/manual/en/numberformatter.formatcurrency.php method as shown in the next example.<?phpdeclare(strict_types=1);namespace MMNewmedia;$oFormatter = new \NumberFormatter('de_DE', \NumberFormatter::CURRENCY);var_dump($oFormatter->formatCurrency(1234567.89, 'EUR'));?>This returns string(17) "1.234.567,89 €" as expected.