Division exacte à l'aide de la fonction fdiv() en PHP8

WBOY
Libérer: 2023-05-16 19:22:01
original
1223 Les gens l'ont consulté

Avec le développement continu de la technologie informatique, les opérations sur les nombres sont devenues l'un des contenus les plus fondamentaux et les plus importants des ordinateurs. Cependant, lors de l'exécution d'opérations de division de nombres à virgule flottante, des erreurs importantes peuvent survenir en raison de la précision du stockage informatique des nombres à virgule flottante. Afin de résoudre ce problème, la fonction fdiv() a été ajoutée dans PHP8 pour des opérations de division précises. Le format syntaxique de la fonction

fdiv() est :

fdiv(float $dividend, float $divisor): float
Copier après la connexion

où $dividend représente le dividende, $divisor représente le diviseur et la valeur de retour est le résultat de l'opération de division, c'est-à-dire la valeur exacte de $dividende divisé par $diviseur.

Ensuite, examinons quelques exemples d'utilisation spécifiques.

  1. Opération de division régulière

Lorsque nous effectuons des opérations de division, nous utilisons généralement l'opérateur de division "/" pour la compléter. Par exemple, si nous devons calculer le résultat de la division de 10 par 3, nous pouvons utiliser le code suivant :

$result = 10 / 3;
echo $result; // 3.3333333333333
Copier après la connexion

En regardant la valeur de $result, nous constaterons que le résultat est 3,3333333333333. Cela est dû à des problèmes de précision lors de la division. les ordinateurs stockent des nombres à virgule flottante.

Si vous utilisez la fonction fdiv() pour effectuer la même opération, le code est le suivant :

$result = fdiv(10, 3);
echo $result; // 3.3333333333333
Copier après la connexion

Il semble qu'il n'y ait pas de changement, mais en fait la fonction fdiv() effectue une opération plus précise, assurant une plus grande précision. résultat précis.

  1. Gestion des cas limites des nombres à virgule flottante

Lorsqu'il s'agit de division en virgule flottante, vous rencontrez souvent des cas extrêmes, tels que le diviseur est 0, le diviseur est extrêmement petit, etc. Dans ces cas, les opérations de division régulières peuvent entraîner des exceptions au programme ou des résultats erronés.

Dans le cas où le diviseur est 0, une exception DivideByZeroError sera levée en PHP, le programme doit donc gérer les exceptions. Par exemple :

try {
    $result = fdiv(10, 0);
} catch (DivideByZeroError $e) {
    echo "Error: Cannot divide by 0";
}
Copier après la connexion

Dans les cas où le diviseur est très petit, des résultats inexacts peuvent être obtenus en raison de la limite de précision des nombres à virgule flottante stockés dans l'ordinateur. Dans ce cas, vous pouvez améliorer la précision du calcul en définissant la précision. Par exemple, nous définissons le résultat du calcul pour qu'il conserve 20 décimales :

ini_set('precision', 20);
$result = fdiv(10, 0.0000001);
echo $result; // 1.0E+8
Copier après la connexion

Vous pouvez voir qu'en définissant la précision, nous obtenons des résultats de calcul plus précis.

  1. Traitement des opérations de division de très grands nombres

Lorsque vous traitez de très grands nombres, l'utilisation d'opérations de division régulières produit souvent de très grosses erreurs. À l'heure actuelle, vous pouvez utiliser la fonction de calcul précis de la fonction fdiv() pour effectuer des opérations de division précises sur des nombres extrêmement grands. Par exemple, nous devons calculer le résultat de la division de 2 à la puissance 100 par 3 :

$dividend = pow(2, 100);
$divisor = 3;
$result = fdiv($dividend, $divisor);
echo $result; // 6.3382530011411E+29
Copier après la connexion

En utilisant la fonction fdiv(), nous obtenons un résultat de calcul plus précis.

Pour résumer, l'émergence de la fonction fdiv() nous permet de diviser plus facilement et plus précisément les nombres à virgule flottante. Elle peut efficacement éviter les erreurs causées par la précision du stockage informatique des nombres à virgule flottante et améliorer la précision. et la stabilité du fonctionnement du programme.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!