Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum Ti68K » Programmation C » Arrondi (17 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
Benjy Ecrit le: Samedi 26 juin 2004 à 21:52 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


voila comment arrondir un float en int mais que ca marche parfaitement car voila j'utilise ca
int y = ceil(fdiv(38,8));
int x = ceil(fdiv(9,8));

comme vous le voyer pour 38/8 ca donne 5 donc c bon puiske ca fai 4.75
mais pour 9/38 ca donne 2 alors que ca fait 1.125 comment avoir un arrondi parfai sans faire une fction merci!!

[EDIT par Kevin Kofler: Désactivé les smileys.]
-Edité le Samedi 26 juin 2004 à 23:40 par Kevin Kofler-
Le langage C y'a pas mieux!!!
    
./Post n°1   Marquer comme non lu.
Benjy Ecrit le: Samedi 26 juin 2004 à 22:17 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


car y aurai bien ca aussi
int y = round12 (38/8);
int x = round12 (9/8);

mais ca arrondi pas comme il faut

[EDIT par Kevin Kofler: Désactivé les smileys.]
-Edité le Samedi 26 juin 2004 à 23:41 par Kevin Kofler-
Le langage C y'a pas mieux!!!
    
./Post n°2   Marquer comme non lu.
Jfg Ecrit le: Dimanche 27 juin 2004 à 01:48 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


Ben je soutiens ce que je t'ai explique sur Msn: Tu fait la difference entre le resultat de la division a virgule et de la division arondi par defaut. Apres tu teste pour voir si la difference est < ou > a 0.5.
C'est sur que ca marche mais c'est pas "clean" du tout comme methode.
Kill Mario
    
./Post n°3   Marquer comme non lu.
Benjy Ecrit le: Dimanche 27 juin 2004 à 07:45 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


ouai mais j'aurai voulut savoir si quelqun d'autre avai une methode
Le langage C y'a pas mieux!!!
    
./Post n°4   Marquer comme non lu.
Sasume Ecrit le: Dimanche 27 juin 2004 à 10:00 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

#define round(a) (int)((a)+0.5)>(int)(a)?(int)(a+1):(int)(a)

Mais c'est peut-être un peu moche.
-Edité le Dimanche 27 juin 2004 à 10:01 par Sasume-
    
./Post n°5   Marquer comme non lu.
Kevin Kofler Ecrit le: Dimanche 27 juin 2004 à 14:50 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Ça m'a l'air incorrect... Je dirais plutôt
#define round(a) ((a)>0?(int)((a)+.5):(int)((a)-.5))
-Edité le Dimanche 27 juin 2004 à 14:50 par Kevin Kofler-
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°6   Marquer comme non lu.
Sasume Ecrit le: Dimanche 27 juin 2004 à 14:55 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Je me rends compte que mon code est débile... #roll#
    
./Post n°7   Marquer comme non lu.
bobti89 Ecrit le: Dimanche 27 juin 2004 à 18:07 Déconnecté(e)    Voir le profil de bobti89 Envoyer un email à bobti89 Visiter le site WEB de bobti89 Envoyer un message privé à bobti89  

Ca veux dire quoi "(a)" ?
bob ou bob, vous ne voyez pas la différence. Pourtant il y en a une fondamentale, l'un est écrit à l'endroit, l'autre à l'envers.

Visitez mon site : http://www.bobti89.fr.st
Testez mon forum ici
    
./Post n°8   Marquer comme non lu.
Kevin Kofler Ecrit le: Dimanche 27 juin 2004 à 18:29 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Le paramètre a de la macro est placé entre parenthèses au cas où il contient des opérations.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°9   Marquer comme non lu.
Benjy Ecrit le: Dimanche 27 juin 2004 à 19:48 Déconnecté(e)    Voir le profil de Benjy Envoyer un email à Benjy Visiter le site WEB de Benjy Envoyer un message privé à Benjy  


et pour utilise ca je fai comment??
#define round(a) ((a)>0?(int)((a)+.5):(int)((a)-.5))
short a=round(4.56);
c'est ca??

[EDIT par Kevin Kofler: Désactivé les smileys.]
-Edité le Lundi 28 juin 2004 à 02:05 par Kevin Kofler-
Le langage C y'a pas mieux!!!
    
./Post n°10   Marquer comme non lu.
Kevin Kofler Ecrit le: Lundi 28 juin 2004 à 02:05 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Oui.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°11   Marquer comme non lu.
verytourist Ecrit le: Lundi 28 juin 2004 à 11:45 Déconnecté(e)    Voir le profil de verytourist Envoyer un email à verytourist Envoyer un message privé à verytourist  

ou alors si ton nombre est positif tu fait
short a = int (4.56 + .5);
, c'est plus court que de définir la macro ;)

[edit: rajout du ';' et mise a la ligne]

-Edité le Mardi 29 juin 2004 à 10:31 par verytourist-
    
./Post n°12   Marquer comme non lu.
Jfg Ecrit le: Lundi 28 juin 2004 à 23:40 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


#top# c'est astucieux ca!
-Edité le Lundi 28 juin 2004 à 23:41 par jfg-
Kill Mario
    
./Post n°13   Marquer comme non lu.
verytourist Ecrit le: Mardi 29 juin 2004 à 10:30 Déconnecté(e)    Voir le profil de verytourist Envoyer un email à verytourist Envoyer un message privé à verytourist  

c'est exactement ce que fesait KK pour les nombres positifs dans sa macro ;)
    
./Post n°14   Marquer comme non lu.
hubert_b Ecrit le: Mardi 29 juin 2004 à 22:45 Déconnecté(e)    Voir le profil de hubert_b Envoyer un email à hubert_b Envoyer un message privé à hubert_b  

La macro est tres bien ... sauf si le nombre est et sera toujours positif/négatif
Préfère aussi la notation pour caster correctement en C (int)(...) car int(...) fait penser à la construction d'un objet int en C++.
Hubert_B aKa nEUrOO
    
./Post n°15   Marquer comme non lu.
Sasume Ecrit le: Mardi 29 juin 2004 à 23:45 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Et ce n'est de toute façon pas valide en C.
    
./Post n°16   Marquer comme non lu.
Kevin Kofler Ecrit le: Mercredi 30 juin 2004 à 15:18 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Sauf s'il a défini #define int(x) (int)(x). :)
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°17   Marquer comme non lu.
verytourist Ecrit le: Jeudi 1er juillet 2004 à 00:09 Déconnecté(e)    Voir le profil de verytourist Envoyer un email à verytourist Envoyer un message privé à verytourist  

[mauvais habitudes du basic..., merci pour l'info ;)]
    
  :: Index » Forum Ti68K » Programmation C » Arrondi (17 réponse(s))
Pages : 1/1     « [1] » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 40.65ms avec 18 requetes