Maison > développement back-end > Problème PHP > Que signifie la virgule flottante php ?

Que signifie la virgule flottante php ?

藏色散人
Libérer: 2023-03-14 21:02:02
original
7211 Les gens l'ont consulté

La virgule flottante PHP fait référence au type à virgule flottante Float, également appelé nombre à virgule flottante, nombre double précision ou nombre réel réel. Sa syntaxe de définition est telle que "$a = 1.234; $b = 1.2e3;"; longueur de mot du nombre à virgule flottante Dépend de la plate-forme, bien que la valeur maximale soit généralement de 1,8e308 avec une précision de 14 chiffres décimaux.

Que signifie la virgule flottante php ?

L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3

Que signifie la virgule flottante php ?

Float Type à virgule flottante

Le type à virgule flottante (également appelé nombre à virgule flottante float, nombre double précision double ou nombre réel réel) peut être défini avec l'une des syntaxes suivantes :

<?php
$a = 1.234; 
$b = 1.2e3; 
$c = 7E-10;
$d = 1_234.567; // 从 PHP 7.4.0 开始支持
?>
Copier après la connexion

Représenté sous la forme de flottant nombre à points (les traits de soulignement PHP 7.4.0 n'étaient pas pris en charge auparavant) :

LNUM          [0-9]+(_[0-9]+)*
DNUM          ([0-9]*(_[0-9]+)*[\.]{LNUM}) | ({LNUM}[\.][0-9]*(_[0-9]+)*)
EXPONENT_DNUM (({LNUM} | {DNUM}) [eE][+-]? {LNUM})
Copier après la connexion

La longueur des mots des nombres à virgule flottante dépend de la plate-forme, bien que la valeur maximale soit généralement de 1,8e308 avec une précision de 14 chiffres décimaux (format IEEE 64 bits ).

Précision des nombres à virgule flottante

Les nombres à virgule flottante ont une précision limitée. Bien que cela dépende du système, PHP utilise généralement le double format IEEE 754, donc l'erreur relative maximale due à l'arrondi est de 1.11e-16. Les opérations mathématiques non fondamentales peuvent donner lieu à 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 ou 0,7 qui peuvent être représentés avec précision en décimal, quel que soit le nombre de mantisses, ne peuvent pas être représentés avec précision par le binaire utilisé en interne, et ne peuvent donc pas être convertis au format binaire sans perdre un peu un peu de précision. Cela peut conduire à des résultats confus : par exemple, floor((0.1+0.7)*10) renverra généralement 7 au lieu du 8 attendu, car la représentation interne du résultat est en fait quelque chose comme 7.999999999999999991118... .

Ne croyez donc jamais que le résultat du nombre à virgule flottante est précis jusqu'au dernier chiffre, et ne comparez jamais si deux nombres à virgule flottante sont égaux. Si vous avez vraiment besoin d'une plus grande précision, vous devez utiliser des fonctions mathématiques de précision arbitraire ou la fonction 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal