Maison > base de données > tutoriel mysql > Comment puis-je éviter une division entière inexacte dans PostgreSQL ?

Comment puis-je éviter une division entière inexacte dans PostgreSQL ?

Linda Hamilton
Libérer: 2024-12-27 17:46:10
original
892 Les gens l'ont consulté

How Can I Avoid Inaccurate Integer Division in PostgreSQL?

Division (/) Inexactitude dans PostgreSQL

Lors de l'exécution d'une division dans PostgreSQL, il est important de prendre en compte les types de données impliqués pour garantir des résultats précis . Dans le cas décrit, où l'objectif est de déterminer la quantité de logiciels à vendre pour récupérer les coûts de développement, une division entière peut conduire à des résultats incorrects.

Dans la requête fournie, dev_cost et sell_cost sont tous deux de types entiers. La division entière tronque le résultat vers zéro, ce qui signifie que la division de 16 000 par 7 500 donne 2 au lieu du 3 attendu.

Pour obtenir un résultat précis, au moins une des valeurs doit être convertie en virgule flottante type tel que float ou décimal. Alternativement, la syntaxe ::decimal peut être utilisée pour convertir explicitement et implicitement le dev_cost en décimal. Cela contraint la division en une opération à virgule flottante, ce qui entraîne une division non tronquée.

Considérez la requête modifiée suivante :

select dev_cost::decimal / sell_cost from software ;
Copier après la connexion

Alternativement, la fonction ceil() peut être utilisée pour arrondir le résultat à l'entier le plus proche :

select ceil(dev_cost::decimal / sell_cost) from software ;
Copier après la connexion

En utilisant ces techniques, des résultats de division précis peuvent être obtenus, garantissant ainsi que les calculs commerciaux basées sur les requêtes de base de données sont valables.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal