Maison >développement back-end >Problème PHP >Quelle est la différence entre float et double en php

Quelle est la différence entre float et double en php

WBOY
WBOYoriginal
2022-02-17 15:50:092554parcourir

En PHP, il n'y a pas de différence entre float et double. Le type à virgule flottante est également appelé nombre à virgule flottante float, nombre double précision double ou nombre réel réel en PHP Float, double ou real sont le même type de données et peuvent être définis en utilisant la même syntaxe.

Quelle est la différence entre float et double en php

L'environnement d'exploitation de ce tutoriel : système Windows 10, PHP version 7.1, ordinateur DELL G3

Quelle est la différence entre float et double en php ?

Afin de distinguer la différence entre float et double en php php, j'utilise respectivement le code suivant.

$vad = 1.1;
print gettype($vad);
var_dump($vad);

Cela affichera :

double
float(1.1)

Cela a l'air différent, mais en fait en php, il n'y a aucune différence. float, double ou real sont le même type de données. Float (également appelé float, double ou real. Au niveau C, tout est stocké en 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/langue.types.float.php

Précision des nombres à virgule flottante

Les nombres à virgule flottante ont une précision limitée, bien que selon le système, PHP utilise généralement le format double précision IEEE 754. L'erreur relative maximale causée par l'arrondi. est 1.11e-16. Les opérations mathématiques non basiques peuvent donner des erreurs plus importantes, et la propagation des erreurs lors de l'exécution d'opérations composées doit être prise en compte

De plus, les nombres rationnels tels que 0,1 peuvent être représentés avec précision en décimal ou 0,7, non. quel que soit le nombre de mantisses, elles ne sont pas représentées avec précision par le binaire utilisé en interne et ne peuvent donc pas être converties au format binaire sans perdre un peu de précision. Cela entraînerait des résultats confus : par exemple, floor((0.1+ 0.7)*10. ) renvoie généralement 7 au lieu du 8 attendu, car la représentation interne du résultat est en fait quelque chose comme 7,9999999999999991118…

Ne croyez donc jamais que le résultat en virgule flottante est précis jusqu'au dernier chiffre, et ne comparez jamais deux flottants. Les points sont-ils égaux. ? ​​Si vous avez vraiment besoin d'une plus grande précision, vous devez utiliser des fonctions mathématiques de précision arbitraire ou des fonctions gmp

Apprentissage recommandé : "Tutoriel vidéo PHP"

.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn