Maison >développement back-end >tutoriel php >Exemples de PHP utilisant des opérations sur des nombres à chiffres longs pour empêcher l'affichage des nombres en notation scientifique

Exemples de PHP utilisant des opérations sur des nombres à chiffres longs pour empêcher l'affichage des nombres en notation scientifique

*文
*文original
2017-12-29 19:03:262222parcourir

Cet article présente principalement la méthode PHP utilisant des opérations sur des nombres super longs (super grands) pour empêcher les nombres d'être affichés en notation scientifique, et implique des compétences connexes dans les opérations mathématiques PHP et les opérations sur les chaînes. J'espère que cela aide tout le monde. L'exemple de cet article décrit comment PHP utilise des opérations sur des nombres super longs (super grands) pour empêcher l'affichage des nombres en notation scientifique. Je les partage avec vous pour votre référence.

Les détails sont les suivants :

PHP fera des erreurs lors du calcul d'opérations numériques volumineuses. Lorsque le nombre est trop grand, la valeur deviendra une notation scientifique. Alors, comment effectuer des opérations numériques extrêmement volumineuses. en PHP, y compris l'addition, la soustraction, la multiplication et la division ? , qu'en est-il des opérations de puissance, des racines carrées et des opérations modulo ?

Pour résoudre le problème de la notation scientifique, ajoutez simplement une paire de guillemets lors de l'attribution de valeurs.

Par exemple :

<?php
$n = &#39;22222222222222222222222222220&#39;;
echo $n;
?>

Sans guillemets, il affiche 2.2222222222222E+28. Avec des guillemets, il affiche 22222222222222222222222222220

Opérations numériques extrêmement volumineuses, y compris l'addition, soustraction, multiplication et division, opérations de puissance, racines carrées et opérations modulo.

Utiliser PHP La fonction bcmath crée une fonction personnalisée. Le code est le suivant,

<?php
function calc($m,$n,$x){
  $errors=array(
    &#39;被除数不能为零&#39;,
    &#39;负数没有平方根&#39;
  );
  switch($x){
    case &#39;add&#39;:
      $t=bcadd($m,$n);
      break;
    case &#39;sub&#39;:
      $t=bcsub($m,$n);
      break;
    case &#39;mul&#39;:
      $t=bcmul($m,$n);
      break;
    case &#39;p&#39;:
      if($n!=0){
        $t=bcp($m,$n);
      }else{
        return $errors[0];
      }
      break;
    case &#39;pow&#39;:
      $t=bcpow($m,$n);
      break;
    case &#39;mod&#39;:
      if($n!=0){
        $t=bcmod($m,$n);
      }else{
        return $errors[0];
      }
      break;
    case &#39;sqrt&#39;:
      if($m>=0){
        $t=bcsqrt($m);
      }else{
        return $errors[1];
      }
      break;
  }
  $t=preg_replace("/\..*0+$/",&#39;&#39;,$t);
  return $t;
}
/*用法举例*/
echo calc(&#39;11111111111111111111111111111111110&#39;,&#39;10&#39;,&#39;add&#39;);
?>

Méthode d'utilisation :

calc(paramètre 1, paramètre 2, paramètre 3);
Le paramètre 3 spécifie la méthode de fonctionnement : ajouter, soustraire, mul, division p, puissance pow, mod modulo, sqrt pour trouver l'arithmétique racine carrée
addition, soustraction, division : paramètre 1 plus/soustraire/multiplier/diviser paramètre 2
puissance : paramètre 1 élevé à la puissance du paramètre 2.
Modulo : Le reste obtenu en divisant le paramètre 1 par paramètre 2.
Racine carrée arithmétique : Trouvez la racine carrée arithmétique du paramètre 1. Le paramètre 2 n'a aucun effet, mais ne peut pas être omis

Recommandations associées :

Introduction détaillée aux opérateurs php et exemples d'expressions_php

Fonctions de base php

PHP 6 : types de données de base 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