Maison > Article > développement back-end > Comment PHP gère les fonctions de calcul de haute précision
Cet article partage principalement avec vous comment PHP gère les fonctions de calcul de haute précision. Il partage principalement avec vous deux méthodes de représentation graphique. J'espère qu'il pourra vous aider.
Méthode 1 :
PHP fournit une calculatrice binaire (Binary Calculator) pour des calculs mathématiques de précision arbitraire, qui prend en charge des nombres de toute taille et précision, décrits sous forme de chaîne
bcadd — addition
bccomp — comparaison
bcp — division
bcmod — trouver le reste
bcmul — multiplication
bcpow — puissance
bcpowmod — augmentez d'abord la puissance puis trouvez le reste
bcscale — Définir la précision de la décimale pour toutes les fonctions
bcsqrt — Trouver les racines carrées
bcsub — Soustraction
Méthode 2 :
J'ai rencontré un problème étrange récemment, le centre commercial a payé via Les commandes WeChat coûtent souvent un centime de moins. Après enquête, cela est dû à la précision des opérations en virgule flottante PHP
Cela est dû à la précision des opérations en virgule flottante PHP. Le Bolg de Brother Niao a des explications détaillées. http://www.laruence.com/2013/03/26/2884.html,
Lorsque les décimales sont représentées en binaire, 0,58 est une valeur infiniment longue pour le binaire
La représentation binaire de 0,58. est fondamentalement (52 bits) est : 0010100011110101110000101000111101011100001010001111
La représentation binaire de 0,57 est fondamentalement (52 bits) : 1110000101000111101
Convertir en nombre à virgule flottante (double précision 64 bits)
0,58 - > 0,57999999999999996
0,57 -> 7
Solution :
Recommandations associées :
(int)((0.58*1000)/10) = 58Exemples courants de fonctions de date et de calcul MySQL expliquésFonction de calcul de probabilité PHPComment calculer le temps d'exécution d'une fonction dans le tutoriel php_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!