IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQLite Discussion :

Calcul décimal avec SQLite


Sujet :

SQLite

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Juin 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Calcul décimal avec SQLite
    Bonjour ,

    Utilisant sqlite depuis peu, j'ai remarqué que le type decimal n'existe pas, j'utilise donc le type INTEGER a la place, qui affiche correctement mes valeurs (exemple : 10,98 )
    par contre j'ai des problemes avec la division de 2 colonnes INTEGER (mais qui contiennent en réalité des décimaux)

    COLA INTEGER contenant 10.2 par exemple
    COLB INTEGER contenant 12 par exemple

    Quand je fais SELECT COLB/COLA j'ai la valeur 1 au lieu de 1.17 ... Pouvez vous m'aider à arriver à la valeur souhaitée ?

    J'ai lu l'explication sur les types de données sqlite , mais je n'ai rien compris ....

    Merci

    Dany

  2. #2
    Membre éprouvé
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 420
    Points : 1 102
    Points
    1 102
    Par défaut
    Bonjour,

    Je crains que tu n'ai quelques difficultés.

    Sqlite connaît le type Integer (=> 64 bits) et le type flottant.

    Si tu as besoin de précision (comme un type décimal) alors il te faudra jouer avec les entiers.
    Pour ta question:
    COLA INTEGER contenant 10.2 par exemple
    COLB INTEGER contenant 12 par exemple

    Quand je fais SELECT COLB/COLA j'ai la valeur 1 au lieu de 1.17 ... Pouvez vous m'aider à arriver à la valeur souhaitée ?
    COLA et COLB sont des entiers Sqlite applique une division entière.

    Pour avoir un résultat en flottant => caster une valeur en flottant

    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select cast (COLB as float)/COLA
    NB Cela te donnera 1,2 car 10,2 en entier = 10 (sauf si tu as joué avec les virgules...

    Cordialement

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Juin 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse, j'ai testé et ça marche bien

    sur d'autres forum, certains proposent de multipler COLA par 100 par exemple et de prendre en compte ce parametre dans les tests ( IF COLA/COLB > 105 au lieu de IF COLA/COLB > 1.05)

  4. #4
    Membre éprouvé
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 420
    Points : 1 102
    Points
    1 102
    Par défaut
    Bonjour,

    sur d'autres forum, certains proposent de multipler COLA par 100 par exemple et de prendre en compte ce parametre dans les tests ( IF COLA/COLB > 105 au lieu de IF COLA/COLB > 1.05)
    Oui bien sûr, tout dépend de ton besoin et des données que tu traites. par exemple, pour une application interne, je travailles en centimes et en entiers pour garantir l'exactitude des calculs.

    cependant, je travailles avec des flottants pour certains calcul (TVA par exemple) mais je traduits en centimes dès que possible.

    Cordialement

Discussions similaires

  1. [Calcul] difficulté avec BigDecimal
    Par dinver dans le forum Langage
    Réponses: 4
    Dernier message: 01/01/2006, 16h41
  2. Réponses: 2
    Dernier message: 28/09/2005, 17h08
  3. [calcul] pb avec la syntaxe d'une expression calulée
    Par gloogloo dans le forum PostgreSQL
    Réponses: 11
    Dernier message: 29/06/2005, 17h14
  4. [FLASH MX] Problème de décimale avec euro
    Par yoda_style dans le forum Flash
    Réponses: 7
    Dernier message: 21/05/2005, 04h14
  5. [CR8] Problème de décimales avec Centura
    Par ccquick dans le forum SAP Crystal Reports
    Réponses: 13
    Dernier message: 05/10/2004, 10h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo