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

Développement de jobs Discussion :

Arrondir nombre dans un TMap


Sujet :

Développement de jobs

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 96
    Points : 32
    Points
    32
    Par défaut Arrondir nombre dans un TMap
    Bonjour,
    Voila, je créé un programme sous talend et dans un TMap, je voudrais arrondir un nombre pour ne pas avoir 15 chiffres après la virgule mais je n'arrive pas puisque ce n'est pas comme sous SQL!
    Si quelqu'un peut m'aider ce serait très sympa puisque mon problème urg !
    D'avance merci

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2012
    Messages : 56
    Points : 84
    Points
    84
    Par défaut
    Bonjour,

    Consulte la doc de la classe java Formatter :

    http://docs.oracle.com/javase/1.5.0/...Formatter.html

    Un petite exemple, pour arrondir à 2 chiffres après la virgule :
    String.format("%.2f", maChaine)

    Bon courage

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 96
    Points : 32
    Points
    32
    Par défaut
    Bonjour Dismantle,
    Merci beaucoup d'être aussi réactif et de m'aider mais ca ne marche pas vu que mon chiffre est un double et non un String.
    En fait, je cherche un équivalent de ceci mais dans un TMap:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    to_number(DECODE(r.FISHING_TIME,null,null,
    ROUND(a.fishing_time/DECODE(r.FISHING_TIME,0,1,r.FISHING_TIME),5)))
    mais la fonction ROUND n'est pas compatible dans un TMAP !

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2012
    Messages : 56
    Points : 84
    Points
    84
    Par défaut
    C'est une erreur de ma part d'avoir marqué maChaine, String.format accepte les double/float, je viens d'en faire à la pelle ce matin ! :p

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 96
    Points : 32
    Points
    32
    Par défaut
    Oui mais il me converti le résultat en String or moi ma sortie est un Double comme l'entrée !
    Comment je peux faire pour que ca me sorte un double aussi?
    Merci

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2012
    Messages : 56
    Points : 84
    Points
    84
    Par défaut
    Tu peux le retransformer en Double :
    http://docs.oracle.com/javase/1.4.2/...va.lang.String)

    Double.parseDouble(string s) !

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 96
    Points : 32
    Points
    32
    Par défaut
    Dans mon TMap, j'ai cette phrase :
    Double.parseDouble(String.format("%.7f", row15.FISHING_TIME ))
    Mais j'ai ceci comme erreur :
    Exception in component tMap_4
    java.lang.NumberFormatException: For input string: "0,4997222"
    at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
    at java.lang.Double.parseDouble(Unknown Source)
    Vois tu d’où viens l'erreur?

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2012
    Messages : 56
    Points : 84
    Points
    84
    Par défaut
    Il faut remplacer la virgule par un point :
    Double.parseDouble(String.format("%.7f", row15.FISHING_TIME ).replace(",", "."))

  9. #9
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    Bonjour,

    Dismantle gère très bien , j'écris un petit message pour te dire que si tu es ammené à refaire souvent le traitement je te conseil de faire une routine du genre BiblioFonction et dedans cette petite fonction. C'est plus simple pour maintenir certaine modif des données et c'est plus parlant pour un utilisateur qui débute en java.

    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
     
    public static double arrondirDouble(double d){
     
    // format d arrondi à 2 chiffres
    DecimalFormat f = new DecimalFormat();
    f.setMaximumFractionDigits(2);
     
    // execution du format
    String dFormat= f.format(d);
     
    //Pour avoir un double il faut remplacer les , par des .
    temp = dFormat.replace(",",".");
     
    double dArrondi = Double.parseDouble(temp);
     
    return dArrondi;
    }

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 96
    Points : 32
    Points
    32
    Par défaut
    Niquel les gas !
    Je test ca tout de suite

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 96
    Points : 32
    Points
    32
    Par défaut
    Merci beaucoup les gas !
    Ca fonctionne parfaitement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 12
    Dernier message: 29/01/2024, 15h32
  2. [AC-2007] Arrondir un nombre dans un SELECT (VBA)
    Par helio500 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 06/10/2011, 18h27
  3. arrondir nombre dans un textbox
    Par jeff91 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 12/04/2007, 22h02
  4. Utilisation des nombres dans Winsock2
    Par DeusXL dans le forum MFC
    Réponses: 14
    Dernier message: 01/12/2004, 17h36
  5. Problème lecture de nombre dans un fichier en c++
    Par knecmotet dans le forum C++
    Réponses: 1
    Dernier message: 28/10/2004, 15h48

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