Lokalizacja w PHP i liczby zmiennoprzecinkowe (użycie setlocale)

Ja to mam pecha na te liczby zmiennoprzecinkowe :wink:

Akurat teraz problem został wyłapany na kolejności użycia języków setlocale.

if( isset($_GET['rev']) ){
	$locale1 = 'en_US';
	$locale2 = 'pl_PL';
} else {
	$locale1 = 'pl_PL';
	$locale2 = 'en_US';
}

setlocale(LC_NUMERIC, $locale1);

$number = 11.11;
echo (string)$number;
echo '<br />';
settype($number, 'string');
echo $number;
echo '<br />';


setlocale(LC_NUMERIC, $locale2);

$number = 11.11;
echo (string)$number;
echo '<br />';
settype($number, 'string');
echo $number;
echo '<br />';

Standardowo pokazuje

11,11 /przecinek/

11,11

11,11 /przecinek/

11,11

 

 

Przy test.php?tev pokazuje 

11.11 /kropka/

11.11

11,11 /przecinek/

11,11

 

Skąd to zjawisko?