Suite

Problème de base utilisant la division dans la calculatrice de champ


C'est une question très basique, mais je n'arrive pas à comprendre ce qui se passe. J'ai des résultats d'élections que j'aimerais simplement afficher sous forme de pourcentages plutôt que de totaux de votes, ce qui devrait être aussi simple que de diviser la colonne "ElectionOui" par "ElectionTotal". Lorsque j'écris cette expression ("ElectionYes" / "ElectionTotal") dans la calculatrice de champ ou la zone d'affichage de la couche, elle crache "0" pour toutes les lignes ! Ce qui donne? Je devrais voir des rendements allant de 0,402 à 0,670.

Je me suis assuré que toutes les colonnes sont des entiers, que toutes les données sont enregistrées et qu'il n'y a pas de valeurs nulles dans les deux colonnes. Toutes les autres fonctions mathématiques fonctionnent (comme dans, je peux créer une colonne de "ElectionYes" * "ElectionTotal" sans erreur), mais je ne sais pas comment le faire avec la division. Des idées?


Vous devez convertir votre dénominateur en une valeur flottante (décimale). Voir ce fil de discussion : Pourquoi cette expression du calculateur de champ est-elle évaluée de manière incorrecte lors de l'utilisation de la syntaxe Python ?

Votre champ de sortie doit également accepter les valeurs décimales (c'est-à-dire qu'il ne peut pas s'agir d'un champ entier).


Par défaut, les expressions QGIS font int / int = int, c'est pourquoi vous voyez le résultat que vous faites. Donc tu dois fairefloat(ElectionOui) / ElectionTotalqui ferafloat/int=float

Cependant, dans QGIS 2.8, cela doit maintenant changerint/int = flottantil fera donc ce que vous attendez.


Une autre façon de convertir en nombres réels serait (toral("ElectionOui") / "ElectionTotal"


Voir la vidéo: Vidéo 8 Leçon Regarde comment faire une division! (Octobre 2021).