Maison > base de données > tutoriel mysql > Comment PostgreSQL gère-t-il la division entière et comment puis-je obtenir des résultats précis ?

Comment PostgreSQL gère-t-il la division entière et comment puis-je obtenir des résultats précis ?

Linda Hamilton
Libérer: 2024-12-26 18:40:18
original
141 Les gens l'ont consulté

How Does PostgreSQL Handle Integer Division, and How Can I Get Accurate Results?

Opérateur de division dans PostgreSQL : comprendre la troncature d'entiers et les calculs à virgule flottante

Dans PostgreSQL, les opérations de division (/) peuvent conduire à des résultats inattendus lorsque vous travaillez avec des valeurs entières. Comprendre le comportement sous-jacent de la division entière est crucial pour éviter des calculs incorrects.

Considérez la requête suivante :

SELECT dev_cost / sell_cost FROM software
Copier après la connexion

Où dev_cost est 16 000 et sell_cost est 7 500. Vous pourriez vous attendre à ce que le résultat soit 3, mais il renvoie 2. En effet, la division entière tronque toute partie fractionnaire du résultat.

Pour obtenir la valeur souhaitée, vous devez convertir au moins une des valeurs en type à virgule flottante (par exemple, décimal) ou utiliser l'opérateur :: pour la convertir à la volée :

SELECT CAST(dev_cost AS DECIMAL) / sell_cost FROM software
Copier après la connexion
SELECT dev_cost::DECIMAL / sell_cost FROM software
Copier après la connexion

Ces requêtes renverront 2,133, qui est le résultat réel de la division.

De plus, vous pouvez utiliser le ceil() pour arrondir le résultat à l'entier le plus proche :

SELECT CEIL(dev_cost::DECIMAL / sell_cost) FROM software
Copier après la connexion

Cette requête renverra 3, qui est la quantité de logiciel souhaitée pour récupérer le coût de développement.

C'est important être conscient de ce comportement lors de l'exécution d'opérations de division et utiliser les types de données et la conversion appropriés pour garantir des calculs précis.

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