Heim  >  Artikel  >  Backend-Entwicklung  >  Parsen Sie PHP, um Gleitkommazahlen, Präzisionsoperationen, Zahlenverarbeitung usw. zu verarbeiten.

Parsen Sie PHP, um Gleitkommazahlen, Präzisionsoperationen, Zahlenverarbeitung usw. zu verarbeiten.

藏色散人
藏色散人nach vorne
2021-05-14 11:46:475981Durchsuche

Dieser Artikel führt Sie in die Verarbeitung von Gleitkommazahlen, Präzisionsoperationen, Zahlenverarbeitung usw. durch PHP ein. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.

Vorwort

1. PHP -Schwimmpunkt -Typen werden für Berechnungen verwendet.

2. Gleitkommazahlen haben eine begrenzte Genauigkeit. Obwohl es vom System abhängt, verwendet PHP normalerweise das IEEE 754-Doppelformat, sodass der maximale relative Fehler aufgrund der Rundung 1,11e-16 beträgt. Nicht grundlegende mathematische Operationen können zu größeren Fehlern führen, und die Fehlerfortpflanzung bei der Durchführung zusammengesetzter Operationen muss berücksichtigt werden. Vertrauen Sie einem Gleitkommaergebnis niemals bis zur letzten Ziffer und vergleichen Sie niemals zwei Gleitkommazahlen auf Gleichheit. Wenn Sie wirklich eine höhere Präzision benötigen, sollten Sie mathematische Funktionen mit beliebiger Präzision oder die GMP-Funktion verwenden.

一. Operationen

Error

 //加
 $a = 0.1; $b = 0.7; $c = intval(($a + $b) * 10); echo $c."0c6dc11e160d3b678d68754cc175188a"; //输出:7
     //减
 $a = 100; $b = 99.98; $c = $a - $b; echo $c."0c6dc11e160d3b678d68754cc175188a"; //输出:0.019999999999996
     //乘
 $a = 0.58; $b = 100; $c = intval($a * $b); echo $c."0c6dc11e160d3b678d68754cc175188a"; //输出:57
     //除
 $a = 0.7; $b = 0.1; $c = intval($a / $b); echo $c."0c6dc11e160d3b678d68754cc175188a"; //输出:6

Correct

1. Für Mathematik mit beliebiger Genauigkeit bietet PHP binäre Berechnungen, die Zahlen beliebiger Größe und Genauigkeit unterstützen, die durch Zeichenfolgen dargestellt werden.
2. Offizielles Handbuch: php.net/manual/zh/book.bc.php
3 Bevor Sie es verwenden, überprüfen Sie bitte, ob bcmath installiert wurde.

 //加
 $a = 0.1; $b = 0.7; $c = intval(bcadd($a, $b, 1) * 10); echo $c."0c6dc11e160d3b678d68754cc175188a"; //输出:8
     //减
 $a = 100; $b = 99.98; $c = bcsub($a, $b, 2); echo $c."0c6dc11e160d3b678d68754cc175188a"; //输出:0.02
     //乘
 $a = 0.58; $b = 100; $c = intval(bcmul($a, $b)); echo $c."0c6dc11e160d3b678d68754cc175188a"; //输出:58
     //除
 $a = 0.7; $b = 0.1; $c = intval(bcp($a, $b)); echo $c."0c6dc11e160d3b678d68754cc175188a"; //输出:7

Zusätzlich zur Addition, Subtraktion, Multiplikation und Division bietet bcmath auch die folgenden Methoden:

1. bccomp vergleicht zwei Zahlen mit beliebiger Genauigkeit
2. bcmod erhöht die Potenz einer Zahl mit beliebiger Genauigkeit
4. bcpowmod modulus die Potenz hochpräziser Zahlen
5 2. Häufig verwendete numerische Verarbeitungslösungen

Runden durch Runden (Abrunden)
echo floor(5.1);
//输出:5

echo floor(8.8);
//输出:8
Rundung um eins (Aufrunden)

echo ceil(5.1);
//输出:6

echo ceil(8.8);
//输出:9

Gewöhnliche Rundungsmethode
echo round(5.1);
//输出:5

echo round(8.8);
//输出:9

//保留两位小数并且进行四舍五入
echo round(5.123, 2);
//输出:5.12

echo round(8.888, 2);
//输出:8.89

//保留两位小数并且不进行四舍五入
echo substr(round(5.12345, 3), 0, -1);
//输出:5.12

echo substr(round(8.88888, 3), 0, -1);
//输出:8.88
Banker-Rundungsmethode

1. Runden auf fünf Betrachten Sie fünf Wenn die letzten fünf nicht leer sind, dann rücken Sie um eins vor. Wenn die letzten fünf leer sind, suchen Sie nach ungeraden oder geraden Zahlen. Wenn die ersten fünf ungerade sind, dann rücken Sie um eins vor .

2. Behalten Sie zwei Dezimalstellen bei. Beispiel:

rrree

Numerische Formatierung (Tausendergruppierung)

1. Wird auf die Anzeige von Beträgen angewendet, die wir häufig sehen.

 1.2849 = 1.28 -> 四舍
 1.2866 = 1.29 -> 六入
 1.2851 = 1.29 -> 五后非空就进一
 1.2850 = 1.28 -> 五后为空看奇偶,五前为偶应舍去
 1.2750 = 1.28 -> 五后为空看奇偶,五前为奇要进一

Empfohlenes Lernen: „

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonParsen Sie PHP, um Gleitkommazahlen, Präzisionsoperationen, Zahlenverarbeitung usw. zu verarbeiten.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen