¿Cómo convierto una cadena en un número en PHP?

Resuelto Sara asked hace 54 años • 36 respuestas

Quiero convertir este tipo de valores, '3', '2.34', '0.234343'etc. en un número. En JavaScript podemos usar Number(), pero ¿hay algún método similar disponible en PHP?

Input             Output
'2'               2
'2.34'            2.34
'0.3454545'       0.3454545
Sara avatar Jan 01 '70 08:01 Sara
Aceptado

Normalmente no es necesario hacer esto, ya que PHP forzará el tipo por usted en la mayoría de las circunstancias. Para situaciones en las que desea convertir explícitamente el tipo, conviértalo :

$num = "3.14";
$int = (int)$num;
$float = (float)$num;
deceze avatar Dec 16 '2011 04:12 deceze

Hay algunas maneras de hacerlo:

  1. Convierta las cadenas a tipos de datos primitivos numéricos:

    $num = (int) "10";
    $num = (double) "10.12"; // same as (float) "10.12";
    
  2. Realice operaciones matemáticas en las cuerdas:

    $num = "10" + 1;
    $num = floor("10.1");
    
  3. Utilice intval()o floatval():

    $num = intval("10");
    $num = floatval("10.1");
    
  4. Usar settype().

fardjad avatar Dec 16 '2011 04:12 fardjad

Para evitar problemas prueba intval($var). Algunos ejemplos:

<?php
echo intval(42);                      // 42
echo intval(4.2);                     // 4
echo intval('42');                    // 42
echo intval('+42');                   // 42
echo intval('-42');                   // -42
echo intval(042);                     // 34 (octal as starts with zero)
echo intval('042');                   // 42
echo intval(1e10);                    // 1410065408
echo intval('1e10');                  // 1
echo intval(0x1A);                    // 26 (hex as starts with 0x)
echo intval(42000000);                // 42000000
echo intval(420000000000000000000);   // 0
echo intval('420000000000000000000'); // 2147483647
echo intval(42, 8);                   // 42
echo intval('42', 8);                 // 34
echo intval(array());                 // 0
echo intval(array('foo', 'bar'));     // 1
?>
gopeca avatar Jun 02 '2014 13:06 gopeca