2012-06-14 29 views
6

Lo siento por preguntar esto, pero, no puedo encontrado una solución que va a conseguir este -> 7000 a 7000.php convertir int formateado a int

estoy usando intval() y Number_format(), pero sólo dará me 7 no 7000.

$myVal = '7,000'; 
echo intval($myVal); 

esto devuelve 7

mismo ocurre con number_format()

¿qué estoy haciendo mal?

+0

¿Está su instalación php localizada en un país donde ',' es el separador decimal? – gcochard

+0

Echa un vistazo a tu localización por lo que @Greg dijo, por cierto, ¿estás usando Windows? –

Respuesta

6

intval() no funcionará con la cadena que tiene debido a la coma. Se puede quitar la coma utilizando str_replace() y luego llamar intval() así:

echo intval(str_replace(',', '', $myVal))

10

Si está usando PHP> = 5.3 (o tener instalado la extensión "Intl", con al menos la versión 1.0), entonces también podría usar la clase NumberFormatter para analizar un número específico de la configuración regional.

$myVal = '7,000'; 
$nf = new NumberFormatter("en_EN", NumberFormatter::DECIMAL); 

var_dump($nf->parse($myVal, NumberFormatter::TYPE_INT32)); 

# output: int(7000) 

Si utiliza una versión de PHP inferior a 5.3, es mejor que utilice @KevinS. solución.

+0

¡Esta es una respuesta tan buena, gracias! – thefreeman