Heim  >  Artikel  >  Backend-Entwicklung  >  Beispiele dafür, wie PHP extrem lange Ziffernoperationen verwendet, um zu verhindern, dass Zahlen in wissenschaftlicher Notation angezeigt werden

Beispiele dafür, wie PHP extrem lange Ziffernoperationen verwendet, um zu verhindern, dass Zahlen in wissenschaftlicher Notation angezeigt werden

*文
*文Original
2017-12-29 19:03:262193Durchsuche

In diesem Artikel wird hauptsächlich die Methode von PHP vorgestellt, bei der superlange (supergroße) Zahlenoperationen verwendet werden, um zu verhindern, dass Zahlen in wissenschaftlicher Notation angezeigt werden, und es werden entsprechende Kenntnisse in PHP-Mathematikoperationen und String-Operationen vermittelt. Ich hoffe, es hilft allen. Das Beispiel in diesem Artikel beschreibt, wie PHP superlange (supergroße) Zahlenoperationen verwendet, um zu verhindern, dass Zahlen in wissenschaftlicher Notation angezeigt werden. Ich teile sie Ihnen als Referenz.

Die Details sind wie folgt:

PHP macht bei der Berechnung großer numerischer Operationen Fehler. Wenn die Zahl zu groß ist, wird der Wert in eine wissenschaftliche Notation umgewandelt Operationen, einschließlich Addition, Subtraktion, Multiplikation und Division? Was ist mit Potenzoperationen, Quadratwurzeln und Modulooperationen?

Um das Problem der wissenschaftlichen Notation zu lösen, fügen Sie beim Zuweisen von Werten einfach ein Paar Anführungszeichen hinzu.

Zum Beispiel:

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

Ohne Anführungszeichen wird 2.2222222222222E+28 angezeigt. Mit Anführungszeichen wird 2222222222222222222222222220 angezeigt

Extrem große numerische Operationen, einschließlich Addition und Subtraktion , Multiplikation und Division, Potenzoperationen, Quadratwurzeln und Modulooperationen.

Verwenden Sie PHP. Die bcmath-Funktion erstellt eine benutzerdefinierte Funktion. Der Code lautet wie folgt:

<?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;);
?>

Verwendungsmethode:

calc(Parameter 1, Parameter 2, Parameter 3);
Parameter 3 gibt die Operationsmethode an: addieren, subtrahieren, mul, p dividieren, pow power, mod modulo, sqrt, um das arithmetische Quadrat zu finden Wurzel
Addition, Subtraktion und Division: Parameter 1 plus/subtrahieren/multiplizieren/dividieren Parameter 2
Potenz: Parameter 1 potenziert mit Parameter 2.
Modulo: Der Rest, der durch Division von Parameter 1 durch Parameter erhalten wird 2.
Arithmetische Quadratwurzel: Finden Sie die arithmetische Quadratwurzel von Parameter 1. Parameter 2 hat keine Auswirkung, kann aber nicht weggelassen werden

Verwandte Empfehlungen:

Detaillierte Einführung in PHP-Operatoren und Ausdrücke_php-Beispiele

PHP-Grundfunktionen

PHP 6: PHP-Grunddatentypen

Das obige ist der detaillierte Inhalt vonBeispiele dafür, wie PHP extrem lange Ziffernoperationen verwendet, um zu verhindern, dass Zahlen in wissenschaftlicher Notation angezeigt werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn