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

Langage Java Discussion :

Import de donn�es de type float change la valeur lors de l'update


Sujet :

Langage Java

  1. #1
    Membre averti
    Homme Profil pro
    Administrateur syst�mes et r�seaux
    Inscrit en
    Juin 2020
    Messages
    18
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : C�te d'Ivoire

    Informations professionnelles :
    Activit� : Administrateur syst�mes et r�seaux
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2020
    Messages : 18
    Par d�faut Import de donn�es de type float change la valeur lors de l'update
    Bonjour tout le monde,

    Je vous fais part d'un souci qui me d�passe.
    Je d�veloppe en JAVA JEE un projet sous Spring.
    Plateforme : Netbeans
    SGBD : Postgres 9.6
    Version JAVA : 1.8

    J'ai un programme War qui tourne sous Tomcat 8.
    Certaines tables sont export�es en .csv et r�import�es dans le m�me programme mais sur une autre instance.
    Le but �tant d'avoir une synchronisation du serveur ma�tre vers le serveur esclave pour certaines donn�es (exemple : des primes et des valeurs de primes).
    Le sch�ma est identique dans les 2 BDD.

    Tout fonctionne, except� un probl�me sur l'import des donn�es de type "DOUBLE".
    La valeur d'une prime qui peut �tre du genre : "4.326" est export�e en .csv. Quand je contr�le le csv, tout est OK.
    Mais lors de l'import, j'observe que dans la BDD esclave, j'ai la valeur : "4.32600021362305".

    Quand je loggue Postgres, je vois bien que la valeur est erron�e lors de l'Update.

    Si quelqu'un a une piste, je suis preneur.

    Merci,

    OlivierNom : Capture.PNG
Affichages : 216
Taille : 10,6 Ko

  2. #2
    Membre averti
    Homme Profil pro
    Administrateur syst�mes et r�seaux
    Inscrit en
    Juin 2020
    Messages
    18
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : C�te d'Ivoire

    Informations professionnelles :
    Activit� : Administrateur syst�mes et r�seaux
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2020
    Messages : 18
    Par d�faut
    Bonjour,

    J'ai tent� de faire un "parseDouble" sur les valeurs FLoat 4 et Float 8, mais j'ai le m�me souci. Quand je loggue la construction de la requ�te, les chiffres sont OK, mais � l'update en BDD, les valeurs sont erron�es.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     private static PreparedStatement setParameterByType(PreparedStatement pst, int key,String field,String val,HashMap<String,String> colsType){
            try{
     
                String type = colsType.get(field);
                if("int4".equals(type)){
                    if(val != null && !val.isEmpty()) { 
                        pst.setInt(key, Integer.parseInt(val));
                    }else{
                         pst.setNull(key, java.sql.Types.INTEGER);
                    }
     
                }else if("float4".equals(type)){               
                   if(val != null && !val.isEmpty()) { 
                        System.out.println("Float4 val :: "+val);
                        System.out.println("Float4 Float.parseFloat(val) :: "+Double.parseDouble(val));
                        pst.setDouble(key, Double.parseDouble(val));
                    }else{
                        pst.setNull(key, java.sql.Types.FLOAT);
                    }
                }else if("float8".equals(type)){
                    if(val != null && !val.isEmpty()) { 
                        System.out.println("Float8 val :: "+val);
                        System.out.println("Float8 Float.parseFloat(val) :: "+Double.parseDouble(val));
                        pst.setDouble(key, Double.parseDouble(val));
                    }else{
                         pst.setNull(key, java.sql.Types.FLOAT);
                    }

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur syst�mes et r�seaux
    Inscrit en
    Juin 2020
    Messages
    18
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : C�te d'Ivoire

    Informations professionnelles :
    Activit� : Administrateur syst�mes et r�seaux
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2020
    Messages : 18
    Par d�faut
    Voil� le Log Tomcat � l'insertion de la ligne :
    Nom : Capture.PNG
Affichages : 199
Taille : 14,2 Ko

    Puis quand je s�lectionne la ligne dans la BDD :
    Nom : Capture2.PNG
Affichages : 195
Taille : 25,0 Ko

    On observe la diff�rence de valeur entre Tomcat et la BDD.

  4. #4
    Membre averti
    Homme Profil pro
    Administrateur syst�mes et r�seaux
    Inscrit en
    Juin 2020
    Messages
    18
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : C�te d'Ivoire

    Informations professionnelles :
    Activit� : Administrateur syst�mes et r�seaux
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2020
    Messages : 18
    Par d�faut
    Sur 3 sites synchronis�s, le souci ne survient sur un seul serveur.

    Sur les 2 autres, les valeurs sont propres.

    Pourtant c'est exactement la m�me architecture (Debian + Postgres 9.6 + Tomcat 8 + java version : Openjdk version "1.8.0_252").

    J'ai tent� de supprimer la table, apr�s re-synchro, m�me probl�me.

    J'ai v�rifi� le postgresql.conf, il est identique.

  5. #5
    Membre averti
    Homme Profil pro
    Administrateur syst�mes et r�seaux
    Inscrit en
    Juin 2020
    Messages
    18
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : C�te d'Ivoire

    Informations professionnelles :
    Activit� : Administrateur syst�mes et r�seaux
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2020
    Messages : 18
    Par d�faut
    Tr�s �tonnant, quand je fais un SELECT sur la valeur, le SGBD ne retourne rien. Mais si je cherche avec inf�rieur, alors j'ai les r�sultats.

    Nom : Capture.PNG
Affichages : 183
Taille : 21,6 Ko

    Nom : Capture2.PNG
Affichages : 190
Taille : 24,1 Ko

  6. #6
    Membre averti
    Homme Profil pro
    Administrateur syst�mes et r�seaux
    Inscrit en
    Juin 2020
    Messages
    18
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : C�te d'Ivoire

    Informations professionnelles :
    Activit� : Administrateur syst�mes et r�seaux
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2020
    Messages : 18
    Par d�faut
    R�solu en mettant en BigDecimal.

    Nom : Capture.PNG
Affichages : 226
Taille : 12,6 Ko

  7. #7
    Membre �m�rite Avatar de Cincinnatus
    Homme Profil pro
    D�veloppeur d'applications m�tier
    Inscrit en
    Mars 2007
    Messages
    593
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur d'applications m�tier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 593
    Par d�faut Repr�sentation des nombres d�cimaux en java
    Voir la discussion ci-dessous (de 2005) amenant aussi � utiliser le type BigDecimal :
    https://www.developpez.net/forums/d3...-calcul-float/

    Sur BigDecimal :
    https://jmdoudoux.developpez.com/cou...ath.php#math-8

    Et sur les r�els en informatique :
    https://fr.wikipedia.org/wiki/Virgule_flottante

    Mais bon, l� il s'agit de notions de d�but de cursus en informatique.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 3
    Dernier message: 15/05/2017, 10h19
  2. ZOS -Comment importer des donn�es de type CSV?
    Par gritchefr dans le forum DB2
    R�ponses: 7
    Dernier message: 08/05/2011, 21h19
  3. R�ponses: 0
    Dernier message: 17/03/2010, 17h45
  4. IMP-00009 : probl�me d'import de donn�es de type Oracle Spatial
    Par fred_04510 dans le forum Import/Export
    R�ponses: 1
    Dernier message: 04/10/2009, 15h19
  5. Importation de donn�es de type csv
    Par Imad_ing dans le forum MS SQL Server
    R�ponses: 3
    Dernier message: 01/08/2007, 14h16

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