2010-06-08 8 views
1

Lorsque je tente de lancerchaîne moulé avec coma à flotter avec un point

$value = floatval('14,5833'); 

à un type float Je me attends à une valeur avec un point comme 14.5833 mais il me retourne 14,5833.

Comment est-ce que je devrais faire ceci?

Je ne voudrais pas utiliser de fonctions de remplacement de chaîne.

+0

* (référence) * http: //de.php .net/manual/fr/function.number-format.php – Gordon

Répondre

4

Vous avez deux options:

  • Définir les paramètres régionaux à quelque chose qui utilise un point au lieu d'un coma. Par exemple. setLocale (LC_ALL, 'fr_BE.UTF-8');
  • continuer à utiliser des virgules en interne, et quand vous voulez afficher ce nombre, utilisez number_format
6

Un exemple utile pour moi:

<?php 
setlocale(LC_NUMERIC, 'en_US'); 
echo 1.234; // 1.234 
setlocale(LC_NUMERIC, 'et_EE.UTF-8'); 
echo 1.234; // 1,234 
echo number_format(1.234, 2, '.', ''); // 1.23 
?> 
+0

Notez que 'number_format()' arrondira la valeur. Donc quelque chose comme 2.3456 sera formaté à 2.35 au lieu de 2.34 – Kamafeather

+0

Cela ne convertit pas à 1.234 jamais pour moi mais toujours 1.234 en utilisant ubuntu 14.04 avec php par défaut 'PHP 5.5.9-1ubuntu4.11' – Programster

+0

Cela ressemble à des locales d'ubuntu doit être explicitement installé, comme 'sudo apt-get install language-pack-et-base'. – cyberhobo