SQRT () ist eine integrierte Funktion in PHP, die die Quadratwurzel einer Zahl zurückgibt. Die Syntax ist wie folgt:
sqrt(float $num): float
Zum Beispiel:
echo sqrt(2); // Ausgabe 1.4142135623731
Diese Funktion gibt eine schwimmende Punktzahl zurück, die auf der zugrunde liegenden doppelten Präzisions -Schwimmpunktzahl (doppelt) basiert.
BCSQRT () ist eine Funktion, die durch die BC -Mathematikverlängerung bereitgestellt wird, um quadratische Wurzeln in hoher Präzision zu berechnen. Die Syntax ist wie folgt:
bcsqrt(string $operand, int $scale = 0): string
Zum Beispiel:
echo bcsqrt('2', 50);
// Ausgabe 1.4142135623730950488016887242096980785696718753769480732
Im Gegensatz zu SQRT () gibt bcsqrt () einen String -Typ -Wert zurück, der die Anzahl der Dezimalstellen ( Skalierungsparameter ) des Ergebnisses angeben kann.
Die von SQRT () verwendeten schwimmenden Punktzahlen haben natürliche Einschränkungen hinsichtlich der Genauigkeit. Die schwimmende Punktgenauigkeit von PHP beträgt im Allgemeinen etwa 14 Bit, was für die meisten täglichen Anwendungsszenarien geeignet ist. In Szenarien mit Finanz-, wissenschaftlichen Computer- oder Verschlüsselungsalgorithmen führt jedoch eine begrenzte Genauigkeit zu ungenauen Ergebnissen.
BCSQRT () ist ein hochpräziser mathematischer Operation, der auf Strings basiert, und die Genauigkeit wird vom Entwickler vollständig gesteuert. Zum Beispiel können wir die quadratische Wurzel eines 100 -Dezimalortes leicht berechnen, was für Programme von entscheidender Bedeutung ist, die präzise Berechnungen erfordern.
Vergleichendes Beispiel:
$num = '2';
echo 'sqrt: ' . sqrt((float)$num) . PHP_EOL;
echo 'bcsqrt: ' . bcsqrt($num, 100) . PHP_EOL;
Die Ausgabe kann wie folgt sein:
sqrt: 1.4142135623731
bcsqrt: 1.414213562373095048801688724209698078569671875376948073176679737990732478462107038850387534327641573
Es ist ersichtlich, dass die von BCSQRT () bereitgestellten Ergebnisse viel genauer sind als SQRT () .
Hochvorbereitungsberechnung <br> Ermöglichen Sie den Entwicklern, die Genauigkeit der Dezimalstellen selbst zu kontrollieren, um schwimmende Punktfehler zu vermeiden.
Höhere Stabilität <br> Bei sehr kleinen oder sehr großen Zahlen verhält sich BCSQRT () stabiler und ist weniger anfällig für Überlauf- oder Rundfehler.
Großes Anwendungsbereich <br> Es ist besonders wichtig, dass Anträge mit Finanzgeschäften (z. B. Zinsberechnung, Währungsaustausch) und wissenschaftlicher Ingenieurwesen beteiligt sind.
Geben Sie Sicherheit ein <br> Der Rückgabewert ist eine Zeichenfolge, die für die Aufrechterhaltung der Integrität und Konsistenz der ursprünglichen Daten und der Vermeidung von Floating-Punkt-Rundungsfehlern förderlich ist.
Angenommen, wir haben eine Kryptowährungsanwendung, die komplexe Zinsberechnungen für Benutzereinlagen erfordert. In diesem Szenario können wir keinen Genauigkeitsfehler tolerieren.
$principal = '10000.00';
$rate = '0.05'; // 5%
$years = '3';
// Berechnen Sie den endgültigen Zinswert der Zinsenzins:FV = P * (1 + r)^n
$growth = bcpow(bcadd('1', $rate, 10), $years, 20);
$final = bcmul($principal, $growth, 20);
echo 'Final amount after 3 years: ' . $final;
Der obige Code vermeidet vollständig Gleitpunktberechnungen, sorgt für die Genauigkeit von Zinsenberechnungen und ist für das Finanzanwendungsmodul auf https://gitbox.net geeignet.