J'ai ce code
$vad = 1.1;
print gettype($vad);
var_dump($vad);
cela produira:
double
float(1.1)
Donc c'est double ou float en php?
Il n'y a aucune différence en PHP. float
, double
ou real
sont du même type de données.
Au niveau C, tout est stocké sous forme de fichier double
.
La taille réelle dépend toujours de la plate-forme.
Consultez le manuel pour plus de détails:
http://www.php.net/manual/en/language.types.float.php
function some( float $num){}
, quand je l'utilise,some(17.23)
il lance une erreur fatale, certains () doivent être une instance de float, double donné,real
de données dans php jusqu'à présent.is_real
fonction, avec est un alias deis_float
...; )Pour PHP, ce sont les mêmes. http://www.php.net/manual/en/language.types.float.php :
La partie déroutante est pourquoi gettype (que vous ne devriez pas utiliser, de toute façon) renvoie "double" au lieu de "float". La réponse est http://de2.php.net/manual/en/function.gettype.php :
la source
Depuis PHP 7.0.6 sous Windows, comparez cette commande sans xdebug:
et avec xdebug:
Notez que cela ne modifie que la sortie de var_dump (), mais pas la gestion de la mémoire réelle.
Cela peut résoudre certains problèmes pour lesquels vous voyez
double
au lieu defloat
s'afficher dans var_dump sur d'autres machines.De plus, avec ou sans xdebug,
gettype
renvoie toujoursstring(6) "double"
.la source
En PHP 7.0.14
Renvoie "Fatal error: Uncaught TypeError: l'argument 1 passé à test () doit être une instance de double, float donné".
Imprime 2.2111 à l'écran.
la source
float
est un indice de type valide ( voir ). Lorsque vous tapez à ladouble
place, il est traité comme un nom de classe et l'interpréteur lève l'exception, car il attend une variable avec une instance de ladouble
classe