96 votos

¿Diferencia entre float y double en PHP?

Tengo este código

$vad = 1.1;

print gettype($vad);

var_dump($vad);

esto saldrá:

double
float(1.1) 

Entonces, ¿es double o float en PHP?

125voto

Macmade Puntos 27414

No hay ninguna diferencia en PHP. float , double o real son del mismo tipo de datos.

En el nivel C, todo se almacena como un double .
El tamaño real sigue dependiendo de la plataforma.

Consulte el manual para obtener más detalles:
http://www.PHP.net/manual/en/language.types.float.PHP

18voto

Victor Nicollet Puntos 16924

Para PHP, son lo mismo. http://www.PHP.net/manual/en/language.types.float.PHP :

Los números de coma flotante (también conocidos como "flotantes", "dobles" o "números reales") pueden especificarse utilizando cualquiera de las siguientes sintaxis: [...]

La parte confusa es por qué gettype (que no deberías usar, de todos modos) devuelve "double" en lugar de "float". La respuesta es http://de2.PHP.net/manual/en/function.gettype.PHP :

" double " (por razones históricas se devuelve "double" en caso de un float , y no simplemente "float")

10voto

SOFe Puntos 2596

A partir de PHP 7.0.6 en Windows, comparando este comando sin xdebug:

$ php -r 'var_dump(28.4);'
float(28.4)

y con xdebug:

$ php -r 'var_dump(28.4);'
Command line code:1:
double(28.4)

Tenga en cuenta que esto sólo cambia la salida de var_dump(), pero no la gestión real de la memoria.

Esto puede responder a algunas preocupaciones por las que ve double en lugar de float mostrado en var_dump en algunas otras máquinas.

Además, con o sin xdebug, gettype todavía vuelve string(6) "double" .

5voto

Oboroten Puntos 275

En PHP 7.0.14

function test(double $a) {
    var_dump($a);
}
test(2.2111);

Devuelve "Error fatal: Uncaught TypeError: El argumento 1 pasado a test() debe ser una instancia de double, float dado".

function test(float $a) {
    var_dump($a);
}
test(2.2111);

Imprime 2,2111 en la pantalla.

-13voto

RobertPitt Puntos 28140

Respuesta verdadera: http://docs.sun.com/source/806-3568/ncg_goldberg.html

Respuesta corta: todo depende de la precisión.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X