|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Étudiant Inscription : juillet 2012 Messages : 11 ![]() |
Bonjour!
J'ai une application vb.net qui exploite une petite base de donnée SQLITEv3. L'une de mes tables contient une liste de prix. Une requête select me donne ceci: PRIX -18.4 -131.66 98.77 -25 -50 -754 0.62 -48.11 43.44 -54.5 538.07 -23.05 -67.28 -78.4 -4.36 -21.37 509.48 -98.77 -40 -24.95 -9.18 -103.49 -19.1 -14.95 -23.4 -47.5 -68 -0.02 -40 478.84 -25.64 -0.05 -50 503.76 -50 -50 -231.8 Si j'en fais la somme à la main, j'arrive a zéro... Mais en faisant un select sum(prix) SQLITE me retourne 5.6843418860808e-14 !!! Je ne comprend pas pourquoi, j'ai essayé avec une colonne REAL, MONEY et FLOAT, j'ai toujours le même résultat. Quelqu'un peut m'aider? Merci |
|
00
|
|
|
#2 |
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 936 ![]() |
Ce sont les "limites" des nombres en virgule flottante.
Utilise un type DECIMAL ou NUMBER s'ils sont disponibles avec SQlite
__________________
Modérateur Langage SQL N'oubliez pas le bouton et pensez aux balises [code]Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
|
|
|
00
|
|
|
#3 | |
|
Membre chevronné
![]() Inscription : janvier 2009 Messages : 401 ![]() |
Bonjour,
Citation:
Code :
SELECT CAST(SUM(prix) AS DECIMAL(10,2)) AS Ecart FROM NomTable Code :
SELECT CAST(SUM(prix) * 100.0 AS INTEGER) / 100.0 AS Ecart FROM NomTable A+ |
|
|
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() Étudiant Inscription : juillet 2012 Messages : 11 ![]() |
Bonjour,
Merci pour vos réponses, ma requête est simplement: J'ai créé des tables TEMP avec des colonnes REAL et FLOAT. J'avais aussi essayé DECIMAL. Ma méthode de transfert était la suivante: Code :
Je vais essayer avec le CAST tantôt et reviens avec les résultats. merci. |
||
|
00
|
|
|
#5 |
|
Invité de passage
![]() Étudiant Inscription : juillet 2012 Messages : 11 ![]() |
J'ai eu le même résultat avec la première option:
Code :
SELECT CAST(SUM(prix) AS DECIMAL(10,2)) AS Ecart FROM COMPTA Code :
SELECT CAST(SUM(prix) * 100.0 AS INTEGER) / 100.0 AS Ecart FROM COMPTA |
|
00
|
Copyright © 2000-2013 - www.developpez.com