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

C Discussion :

affichage nombre C


Sujet :

C

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 45
    Points : 30
    Points
    30
    Par défaut affichage nombre C
    voilà je suis entrain d'écrire d'un programme en C pour mon stage
    et j'ai un problème pour l'écriture des constantes , à chaque fois il ajoute des zéros à la fin de ma constance , genre
    si je fais


    double longitude = -100.375;


    je ne sais pas pourquoi il m'affiche -100.375000 , alors que moi j'ai besoin de -100.375
    j'ai essayé plusieursfaçons le printf("%e\n",nlon) en chageant à chaque fois le %e par un %f


    d'après vous quel est le problème ???

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Il n'y a pas de problème, juste une petite méconnaissance des formats d'affichage.
    Le format "%.3f" permet de spécifier le nombre de décimales à afficher.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    double val = -100.375;
    printf("val=%f\n", val);
    printf("val=%.3f\n", val);
    donne:
    val=-100.3750000
    val=-100.375

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 45
    Points : 30
    Points
    30
    Par défaut
    merci bcp , c'est la commande que je cherchais

  4. #4
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 572
    Points
    1 572
    Par défaut
    bonjour,

    le probleme aucun, a part la non lecture du MAN.
    c est le comportement par defaut du printf.
    Par contre pour avoir un affichage selon ton besoin ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    printf("%.3f\n",nlon)
    et puis pour toutes les enormes autres possibilites de formatage de chaines voir le MAN ou les divers tutos qui traines sur dvp entre autre.

    voila, bonne journée
    bon courage

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 45
    Points : 30
    Points
    30
    Par défaut
    ahhhh il y a toujours un petit problème , parceque j'ai un tableau de valeur et souvent je tombe sur des valeurs genre -111 et si je fais cette commande %.3f , il va m'afficher toujours -111.000, donc cette commande est opérationnelle quand il est à question de nombre avec des chiffres apès la virgule

    une autre solution ??

  6. #6
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 572
    Points
    1 572
    Par défaut
    detail de fonctionnement

    La fonction fait exactement ce qu on lui demande : afficher 3 caracteres apres la virgule.

    Apres ca reste de l affichage, ca te derange tant que ca ?

  7. #7
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Oui, c'est à toi de spécifier la précision que tu veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    double val = -100.375;
    printf("val=%.*f\n", 4, val);
    va afficher :
    val=-100.3750
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    double val = -100.375;
    printf("val=%.*f\n", 0, val);
    va afficher :
    val=-100

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 45
    Points : 30
    Points
    30
    Par défaut
    le problème c'est que j'ai besoin de ces valeurs pour une requête wget , et donc s'il merde dans l'écriture , la réquete ne vas pas marcher , c'est pour ça j'ai besoin d'avoir exactement les nombres tels qu'ils sont écrit dans le fichier texte

    merci

  9. #9
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Peut être que tu pourrais nous présenter ton problème réel et global de manière à ce que l'on puisse t'aider de manière globale et efficace.

    Parce que là, tu présente ton problème de manière incomplète et itérative et donc on te donnes des solutions forcemment partielles.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 45
    Points : 30
    Points
    30
    Par défaut
    vilà , je vous explique le problème
    je dispose d'une grille de pts (longitude et latitude) et l'altitude et les coordonnées de ces pts en systeme de coordonnées NARR

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    45 319 16.875 -100.375 0
    46 319 17.250 -100.375 615
    47 319 17.625 -100.375 1758
    48 319 18.000 -100.375 1180
    49 319 18.375 -100.375 835
    50 319 18.750 -100.375 1018
    51 319 19.125 -100.375 1420
    52 319 19.500 -100.375 2494
    53 319 19.875 -100.375 2347
    54 319 20.250 -100.375 2310
    55 319 20.625 -100.375 2146
    56 319 21.000 -100.375 2120
    45 320 16.875 -100.000 255
    46 320 17.250 -100.000 834
    47 320 17.625 -100.000 1757
    48 320 18.000 -100.000 1048
    49 320 18.375 -100.000 1182
    50 320 18.750 -100.000 1571
    51 320 19.125 -100.000 2315
    52 320 19.500 -100.000 2495
    53 320 19.875 -100.000 2520
    54 320 20.250 -100.000 2401
    55 320 20.625 -100.000 2020
    56 320 21.000 -100.000 2193
    45 321 16.875 -99.625 271
    46 321 17.250 -99.625 1009
    47 321 17.625 -99.625 1143
    48 321 18.000 -99.625 1063
    49 321 18.375 -99.625 1763
    50 321 18.750 -99.625 2006
    51 321 19.125 -99.625 2888
    52 321 19.500 -99.625 2681
    53 321 19.875 -99.625 2620
    54 321 20.250 -99.625 2599
    55 321 20.625 -99.625 2376
    56 321 21.000 -99.625 1410
    45 322 16.875 -99.250 347
    46 322 17.250 -99.250 1126
    47 322 17.625 -99.250 1365
    48 322 18.000 -99.250 1085
    49 322 18.375 -99.250 1104
    50 322 18.750 -99.250 1637
    51 322 19.125 -99.250 2976
    52 322 19.500 -99.250 2473
    53 322 19.875 -99.250 2438
    54 322 20.250 -99.250 2213
    55 322 20.625 -99.250 2213
    56 322 21.000 -99.250 1816
    45 323 16.875 -98.875 616
    46 323 17.250 -98.875 1343
    47 323 17.625 -98.875 1660
    48 323 18.000 -98.875 1266
    49 323 18.375 -98.875 1161
    50 323 18.750 -98.875 1582
    51 323 19.125 -98.875 2482
    52 323 19.500 -98.875 2583
    53 323 19.875 -98.875 2438
    54 323 20.250 -98.875 2079
    55 323 20.625 -98.875 1818
    56 323 21.000 -98.875 1244
    45 324 16.875 -98.500 555
    46 324 17.250 -98.500 1885
    47 324 17.625 -98.500 1780
    48 324 18.000 -98.500 1364
    49 324 18.375 -98.500 1259
    50 324 18.750 -98.500 1629
    51 324 19.125 -98.500 2420
    52 324 19.500 -98.500 2714
    53 324 19.875 -98.500 2633
    54 324 20.250 -98.500 2198
    55 324 20.625 -98.500 1589
    56 324 21.000 -98.500 985
    45 325 16.875 -98.125 1326
    46 325 17.250 -98.125 1975
    47 325 17.625 -98.125 1708
    48 325 18.000 -98.125 1531
    49 325 18.375 -98.125 1459
    50 325 18.750 -98.125 1762
    51 325 19.125 -98.125 2139
    52 325 19.500 -98.125 2642
    53 325 19.875 -98.125 2471
    54 325 20.250 -98.125 1623
    55 325 20.625 -98.125  549
    56 325 21.000 -98.125  236
    c'est le fichier contenant les coordonnées (84 pts)

    donc je dois écrire un petit code en C qui permet de récupérer des données météos pour chaque pts en utilisant une commande wget
    j'ai besoin pour cela des coordonnées longitude et latitude (2éme colonne et 3éme colonne) ,
    voici un exemple d'une commande wget pour le premier pt du fichier

    wget http://nomads.ncdc.noaa.gov/dods/NCE...0.ascii?spfh2m[6][16.875][-100.375

    mon problème c'est que quand je dispose des coordonnées et que je veux les injecter dans la requete (c'est une chaîne de caractére que je construit en utilisant les deux coordonnées) alors à chaque fois que j'essaie de concaténer mes coordonnées à la chaine de caractére fixe , il m'ajoute trois zéros à la fin

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 45
    Points : 30
    Points
    30
    Par défaut
    ça yé , j'ai trouvé la solution , en tous les cas merci bcp pour votre aide

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

Discussions similaires

  1. Différence frappe -> affichage nombres
    Par Ataturk dans le forum Access
    Réponses: 4
    Dernier message: 03/07/2009, 10h00
  2. [Affichage] nombres +positifs/-négatifs
    Par Commodore dans le forum Excel
    Réponses: 2
    Dernier message: 18/01/2008, 16h21
  3. Affichage nombres réels
    Par ingelman dans le forum WinDev
    Réponses: 3
    Dernier message: 18/01/2006, 15h28
  4. Pb affichage nombre
    Par laurent35 dans le forum Access
    Réponses: 2
    Dernier message: 12/01/2006, 21h47
  5. [Binaire]Affichage nombres
    Par etan01 dans le forum Général Java
    Réponses: 8
    Dernier message: 21/12/2005, 18h48

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