Maison  >  Article  >  développement back-end  >  Comment convertir des nombres à virgule flottante en PHP

Comment convertir des nombres à virgule flottante en PHP

PHPz
PHPzoriginal
2023-04-04 09:11:38446parcourir

En programmation PHP, nous devons souvent effectuer des opérations sur les nombres. Les nombres à virgule flottante sont un type courant de ces opérations sur les nombres. Lors de calculs précis, nous devons souvent convertir des nombres à virgule flottante sous forme positive. Alors, comment pouvons-nous effectuer une opération positive sur les nombres à virgule flottante en PHP ?

1. Qu'est-ce qu'un nombre à virgule flottante

En informatique, un nombre à virgule flottante est un type de données numériques utilisé pour représenter des nombres réels. Sa particularité est que la position de la virgule décimale est variable, c'est-à-dire « virgule flottante ». En PHP, les nombres à virgule flottante peuvent être représentés sous le format suivant : $f = 3.14;.

Les nombres à virgule flottante peuvent comporter des erreurs de calcul. Cela est dû à la différence dans la façon dont les valeurs informatiques sont stockées et dans la manière dont les nombres réels sont représentés en mathématiques. Regardons un exemple ci-dessous :

$a = 0.1;
$b = 0.7;
$c = $b - $a;
echo $c;

Nous voulons que le résultat de sortie soit de 0,6, mais le résultat de sortie réel est de 0,599999999999999. En effet, les ordinateurs ne peuvent utiliser qu'un nombre limité de bits binaires pour représenter les décimales lors du stockage des décimales, ce qui entraînera des inexactitudes dans le stockage et les calculs.

2. Opération positive sur les nombres à virgule flottante

Pour les scénarios d'application qui nécessitent des calculs précis, nous devons effectuer des opérations positives sur les nombres à virgule flottante, c'est-à-dire les convertir sous forme positive. Par exemple, $a = -3,14 ; doit être converti en $a = 3,14 ;.

En PHP, nous pouvons utiliser la fonction abs() pour effectuer des opérations de valeur absolue sur des nombres, par exemple :

$a = -3.14;
$a = abs($a);
echo $a;

Le code ci-dessus implémente l'opération de conversion de $a en un nombre positif. La sortie est 3.14.

Cependant, le code ci-dessus ne peut pas gérer le problème de précision des nombres à virgule flottante négatifs. Nous devons donc adopter des méthodes de correction plus précises. Deux méthodes couramment utilisées sont présentées ci-dessous.

  1. Utilisez la fonction round()

La fonction round() peut arrondir un nombre à un nombre spécifié de décimales. Par exemple, nous pouvons utiliser le code suivant pour convertir un nombre en nombre positif :

$a = -3.14;
$a = round($a, 2);
$a = abs($a);
echo $a;

Dans le code ci-dessus, la fonction round() arrondit $a à deux décimales puis convertit le résultat en un nombre positif. La sortie est 3.14.

  1. Utilisez la fonction sprintf()

La fonction sprintf() peut formater un nombre selon la chaîne de format spécifiée et renvoyer la chaîne formatée. Par exemple, nous pouvons utiliser le code suivant pour convertir un nombre en nombre positif :

$a = -3.14;
$a = sprintf("%.2f", abs($a));
echo $a;

Dans le code ci-dessus, la fonction sprintf() utilise la chaîne de format spécifiée "%.2f" pour convertir $a en nombre à virgule flottante avec deux décimales et utilisez la fonction abs() pour convertir le résultat sous une forme positive. La sortie est 3.14.

3. Résumé

Cet article présente comment convertir des nombres à virgule flottante en forme positive en PHP. Nous pouvons utiliser la fonction abs() pour effectuer des opérations de valeur absolue sur des nombres, ou nous pouvons utiliser la fonction round() et la fonction sprintf() pour effectuer des opérations positives précises sur des nombres à virgule flottante. Lors de l'exécution de calculs précis, nous devons prêter attention à l'exactitude des nombres à virgule flottante pour éviter les erreurs dans les résultats des calculs.

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