Heim > Datenbank > MySQL-Tutorial > Wie kann ich eine ungenaue Ganzzahldivision in PostgreSQL vermeiden?

Wie kann ich eine ungenaue Ganzzahldivision in PostgreSQL vermeiden?

Linda Hamilton
Freigeben: 2024-12-27 17:46:10
Original
889 Leute haben es durchsucht

How Can I Avoid Inaccurate Integer Division in PostgreSQL?

Ungenauigkeit der Division (/) in PostgreSQL

Bei der Durchführung einer Division in PostgreSQL ist es wichtig, die beteiligten Datentypen zu berücksichtigen, um genaue Ergebnisse sicherzustellen . In dem beschriebenen Fall, in dem das Ziel darin besteht, die Menge an Software zu bestimmen, die verkauft werden soll, um Entwicklungskosten zu decken, kann eine ganzzahlige Division zu falschen Ergebnissen führen.

In der bereitgestellten Abfrage sind dev_cost und Sell_cost beide ganzzahlige Typen. Durch eine Ganzzahldivision wird das Ergebnis in Richtung Null gekürzt, was bedeutet, dass die Division von 16000 durch 7500 2 anstelle der erwarteten 3 ergibt.

Um ein genaues Ergebnis zu erhalten, muss mindestens einer der Werte in einen Gleitkommawert umgewandelt werden Typ wie Float oder Dezimalzahl. Alternativ kann die ::decimal-Syntax verwendet werden, um dev_cost implizit explizit in eine Dezimalzahl umzuwandeln. Dies erzwingt die Division in eine Gleitkommaoperation, was zu einer nicht abgeschnittenen Division führt.

Betrachten Sie die folgende modifizierte Abfrage:

select dev_cost::decimal / sell_cost from software ;
Nach dem Login kopieren

Alternativ kann die Funktion ceil() verwendet werden um das Ergebnis auf die nächste ganze Zahl aufzurunden:

select ceil(dev_cost::decimal / sell_cost) from software ;
Nach dem Login kopieren

Durch die Verwendung dieser Techniken können genaue Divisionsergebnisse erzielt werden, wodurch sichergestellt wird, dass Geschäftsberechnungen darauf basieren Datenbankabfragen sind solide.

Das obige ist der detaillierte Inhalt vonWie kann ich eine ungenaue Ganzzahldivision in PostgreSQL vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage