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 :

Arrondire un nombre 2 chiffres apres la virgules


Sujet :

C

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Points : 193
    Points
    193
    Par défaut Arrondire un nombre 2 chiffres apres la virgules
    Bonsoir tout le monde

    Je ne vois pas comment Arrondire un nombre 2 chiffres apres la virgule.

    Ya t il une fonction en c qui le fait.

    Voici le code

    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
     
    float Francs_E(float sommeurro)
    {
     
    float sommeconv;
     
    printf("Entrer la somme a convertir\n");      
     
    scanf("%f",&sommeurro);  
     
    printf("Convertion en cours\n");      
    printf("\n");      
    sommeconv = sommeurro / taux;  
     
    printf("Voici le resultat de votre conversion %f\n", sommeconv);   
     
    }
    Merci

    Cordialement

    A bientôt

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Si c'est juste à l'affichage, printf() fait ça très bien (avec le bon format) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <stdio.h>
    #include <stdlib.h>
     
    int main( void ) {
     
    	float flottant = 0.123;
     
    	printf( "flottant = %.2f\n", flottant );
     
    	exit( EXIT_SUCCESS );	
    }

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 124
    Points : 193
    Points
    193
    Par défaut
    Re

    Merci ca fonctionne

    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
     
     
    float Francs_E(float sommeurro)
    {
     
    float sommeconv;
     
    printf("Entrer la somme a convertir\n");      
     
    scanf("%f",&sommeurro);  
     
    printf("Convertion en cours\n");      
    printf("\n");      
    sommeconv = sommeurro / taux;  
     
    printf("Voici le resultat de votre conversion %.2f\n", sommeconv);   
     
    }
    Je les pas vue ca dans mon livre.

    A+

  4. #4
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par argon
    Re

    Merci ca fonctionne

    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
     
     
    float Francs_E(float sommeurro)
    {
     
    float sommeconv;
     
    printf("Entrer la somme a convertir\n");      
     
    scanf("%f",&sommeurro);  
     
    printf("Convertion en cours\n");      
    printf("\n");      
    sommeconv = sommeurro / taux;  
     
    printf("Voici le resultat de votre conversion %.2f\n", sommeconv);   
     
    }
    Je les pas vue ca dans mon livre.

    A+
    Hmmm...

    1) scanf est déconseillé, utilise fgets + strtod
    2) taux n'est pas déclarée dans ta fonction donc on suppose que c'est une variable globale -> à éviter
    3) ta fonction a un type retour mais ne retourne rien -> à éviter


    Jc

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par fearyourself
    Hmmm...

    1) scanf est déconseillé, utilise fgets + strtod
    2) taux n'est pas déclarée dans ta fonction donc on suppose que c'est une variable globale -> à éviter
    3) ta fonction a un type retour mais ne retourne rien -> à éviter


    Jc
    Citation Envoyé par argon
    [...]

    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
     
     
    float Francs_E(float sommeurro)
    {
    /* 4) Prendre l'habitude d'indenter le code */
        float sommeconv;
     
        puts("Entrer la somme a convertir");    /* 5) puts() suffit ici */
     
        scanf("%f",&sommeurro);  /* 1) scanf() déconseillée */
     
        puts("Convertion en cours\n");    /* 6) Inutile d'appeler une deuxième fois la fonction */   
                                            /* pour ajouter un saut de ligne : ajouter 1 "\n" de plus dans la chaîne */
                                            /* ex. : printf("euros : %f\n\n",sommeurro) */   
     
        sommeconv = sommeurro / taux;  /* 2) si taux = variable globale, remplacer par un #define TAUX mettreIciLaValeurDuTaux */
     
        printf("Voici le resultat de votre conversion %.2f\n", sommeconv);   
     
        return sommeconv; /* 3) renvoyer une valeur (ou mettre void comme type de retour de fonction) */
     
    }
    [...]

  6. #6
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par David.Schris
    5) puts() suffit ici
    Certes. Mais a priori, dans ce cas precis, puts n'apporte rien par rapport a printf.

    La seule raison que je verrais pour remplacer printf par puts dans ce cas serait eventuellement, si les mesures de perf et d'occupation memoire ont montre une grosse perte de temps ou de memoire, dans un but d'optimisation mais dans la plupart des cas ca ne changera pas grand chose.

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Points : 1 067
    Points
    1 067
    Par défaut
    Citation Envoyé par gl
    Certes. Mais a priori, dans ce cas precis, puts n'apporte rien par rapport a printf.

    La seule raison que je verrais pour remplacer printf par puts dans ce cas serait eventuellement, si les mesures de perf et d'occupation memoire ont montre une grosse perte de temps ou de memoire, dans un but d'optimisation mais dans la plupart des cas ca ne changera pas grand chose.
    Nous sommes d'accord...à une ou deux petites nuances prêt.
    Tout d'abord, "suffit" ne veut pas dire "il faut absolument remplacer cet appel à printf() par un appel à puts()" : le but est d'informer sur la possibilité d'utiliser une autre fonction qui suffirait pour faire la même chose. Ainsi, si le PO a, un jour, un choix à faire, il pourra le faire en son âme et conscience. S'il ne connaît que printf(), il ne pourra pas le faire.
    Deuxième point : la sécurité. Quand on prend l'habitude d'utiliser printf() avec un seul argument, on a vite fait de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf( chaineSaisieParLUtilisateur );
    où, tu l'auras compris, "chaineSaisieParLUtilisateur" est une chaine de caractères saisie par l'utilisateur. Résultat : "Format String Vulnerability". Autant prendre de bonnes habitudes et, dans ce cas : soit systématiquement utiliser une chaine de format avec printf() ("%s" pour afficher une chaine) ; soit utiliser puts() (ou autre selon les besoins).

  8. #8
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par David.Schris
    le but est d'informer sur la possibilité d'utiliser une autre fonction qui suffirait pour faire la même chose. Ainsi, si le PO a, un jour, un choix à faire, il pourra le faire en son âme et conscience. S'il ne connaît que printf(), il ne pourra pas le faire.
    Mais nous sommes bien d'accord. Je ne faisait pas de critique de ta remarque, j'apportais juste une remarque sur le fait que dans ce cas precis il n'y a pas, sauf cas particulier, de difference ni de raison de preferer une solution a une autre.

    Ma formulation etait peut etre malheureuse.

    Citation Envoyé par David.Schris
    Deuxième point : la sécurité. Quand on prend l'habitude d'utiliser printf() avec un seul argument, on a vite fait de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf( chaineSaisieParLUtilisateur );
    Dans une telle utilisation, c'est different, il y a effectivement un risque.

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

Discussions similaires

  1. [Turbo Pascal] Arrondir un nombre à "n" chiffres après la virgule
    Par alpha58 dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 30/12/2011, 14h37
  2. [C#] Limiter le nombre de chiffre apres la virgule ?
    Par MaxiMax dans le forum ASP.NET
    Réponses: 3
    Dernier message: 01/08/2011, 14h20
  3. Limiter nombre de chiffre apres la virgule
    Par MaxiMax dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/08/2005, 12h02
  4. arrondir un nombre à 2 chiffres après la virgule
    Par El Saigneur dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 01/02/2005, 08h36
  5. [MFC] Nombre de chiffres après la virgule
    Par karl3i dans le forum MFC
    Réponses: 3
    Dernier message: 27/01/2004, 13h04

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