Tengo este codigo
$vad = 1.1;
print gettype($vad);
var_dump($vad);
esto dará como resultado:
double
float(1.1)
Entonces, ¿es doble o flotante en php?
No hay diferencia en PHP. float
, double
o real
son del mismo tipo de datos.
En el nivel C, todo se almacena como 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
function some( float $num){}
, cuando la usosome(17.23)
arroja un error fatal, algunos () deben ser una instancia de flotante, dado doble,real
de datos en php hasta ahora.is_real
función, con es un alias deis_float
...; )Para PHP, son lo mismo. http://www.php.net/manual/en/language.types.float.php :
La parte confusa es por qué gettype (que no debería usar, de todos modos) devuelve "doble" en lugar de "flotar". La respuesta es http://de2.php.net/manual/en/function.gettype.php :
fuente
A partir de PHP 7.0.6 en Windows, comparando este comando sin xdebug:
y con xdebug:
Tenga en cuenta que esto solo cambia la salida de var_dump (), pero no la administración de memoria real.
Esto puede abordar algunas preocupaciones por las que ve en
double
lugar defloat
mostrarse en var_dump en algunas otras máquinas.Además, con o sin xdebug,
gettype
todavía regresastring(6) "double"
.fuente
En PHP 7.0.14
Devuelve "Error fatal: Error de tipo no detectado: El argumento 1 pasado a test () debe ser una instancia de double, float dado".
Imprime 2.2111 en la pantalla.
fuente
float
es una sugerencia de tipo válida ( ver ). Cuando escribe en sudouble
lugar, se trata como un nombre de clase y el intérprete lanza la excepción, porque espera una variable con una instancia de ladouble
clase