Frage Als ich heute eine Projektfunktion schrieb, musste ich eine statistische Berechnung des Geldbetrags durchführen und dann die Einheiten umrechnen. Also schrieb ich eine Anweisung ähnlich der folgenden Funktion, aber die Daten, die ich erhielt, hatten 4 Dezimalstellen, und normalerweise benötigen wir nur 2 Stellen. Suche weiter nach Daten und führe eine Präzisionskonvertierung durch. Nach einer Weile bin ich mit den Daten nicht zufrieden. Teste weiter prüfen Beim Testen auf Fehler und unbekannte Situationen müssen wir die Reproduktion minimieren, den Test rationalisieren und verhindern, dass andere Anweisungen die Ergebnisse beeinträchtigen.
Es läuft auf 3/4 Geräten und die Ergebnisse sind in Umgebungen mit unterschiedlichen MySQL-Versionen dieselben. Wir wissen also, dass in MySQL Multiplikation und Division nach dem Komma unterschiedliche Genauigkeiten haben. Da ich in den inländischen Foren keine passenden Informationen finden konnte, suchte ich in ausländischen Foren, um danach zu suchen, Fragen zu stellen und zu kommunizieren. Antwort Zunächst einmal möchte ich mich bei den anderen Senioren für ihre Antworten und Ratschläge bedanken. Wir werden auch die Fehlerbehebung des Problems so detailliert wie möglich dokumentieren. Zivilisationen überleben, weil sie ein Gedächtnis haben. Ich hoffe, dieser Artikel kann mehr Freunden helfen.
prüfen
Im Einklang mit der Schlussfolgerung der Berufung. Wir danken den ausländischen Senioren für ihre Anleitung. Bei der Division wird eine Genauigkeit von 2 Ziffern verwendet Wenn wir zur Lösung unseres Problems unbedingt die Division verwenden möchten, können wir die Genauigkeit mithilfe einer Funktion umrechnen.
Sie können die Parameter von DECIMAL auf Baidu nachschlagen. Im Grunde kann das jeder verstehen, der schon einmal eine Tabellenstruktur erstellt hat. @x und @y sind Divisor und Dividende. Gleichzeitig habe ich mich auch gefragt, ob es möglich ist, die Standarddivisionsgenauigkeit in MySQL festzulegen, sodass wir nicht jedes Mal Funktionsberechnungen in SQL verwenden müssen. Antwort des Seniors: Wenn Sie nicht möchten, dass manchmal unerwartete Situationen auftreten, müssen Sie jedes Mal eine Typkonvertierung erzwingen. MySQL-bezogene Dokumentation https://dev.mysql.com/doc/refman/8.0/en/arithmetic-functions.html
Präzisionsregeln für die Division Aus der oben zitierten Literatur wissen wir, dass bei der Berechnung mit zwei Zahlen die Genauigkeit des Ergebnisses durch die Genauigkeit des ersten Operanden + den Wert der Systemvariable div_precision_increment bestimmt wird. Beispielsweise ist die Genauigkeit von 1 in unserem Beispiel 0, und die Systemvariable precision beträgt standardmäßig 4 Ziffern, sodass das Ergebnis eine Genauigkeit von 4 Ziffern aufweist.
Daher können wir auch die Standardgenauigkeit der Division ändern, indem wir die Standardvariablen modifizieren. Jetzt testen wir
Zusammenfassen Dies ist das Ende dieses Artikels über die inkonsistente Genauigkeit von MySQL-Multiplikation und -Division und vier Dezimalstellen nach der Division. Weitere relevante Inhalte zur Genauigkeit von MySQL-Multiplikation und -Division finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erläuterung der Nginx-Statusüberwachung und Protokollanalyse
>>: Lösung für das Problem des Sitzungsfehlers, der durch den Nginx-Reverse-Proxy verursacht wird
Inhaltsverzeichnis Status Quo Lösung Weitere Lösu...
CSS-Attributselektoren sind großartig. Sie können...
Inhaltsverzeichnis 1. Datum 2. RegExp 3. Original...
Inhaltsverzeichnis 1. Was ist eine Transaktion? 2...
Vorwort Immer noch in Bezug auf das zuvor erwähnt...
Inhaltsverzeichnis 1: Kapselungsidee 2. Verpackun...
BinLog BinLog ist ein Binärprotokoll, das alle Än...
In diesem Artikel wird der spezifische Code von J...
<br />Vorheriger Artikel: Webdesign-Tutorial...
Trotz Props und Events müssen Sie manchmal immer ...
<style type="text/css"> Code kopie...
Die Formularelemente mit Sichtbarkeit=versteckt un...
Dynamisches Implementieren eines einfachen sekund...
In diesem Artikel wird hauptsächlich die Methode ...
Bereitstellen einer Datenbank basierend auf Docke...