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 » Chaînes de caractères -> flottant avec atof (16 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
geogeo Ecrit le: Lundi 13 septembre 2004 à 20:41 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


J'ai remarqué qu'en utilisant atof, j'ai toujours un arrondi d'effectué.
Ainsi qu'en je tappe 4936706897804105008, j'obtient 4.936707e18.
Soit cette arrondi est effectué à cause de la limite des flottants (dans ce cas quelle est la limite d'un entier sous la forme d'un flottant, 12 chiffres?) ou soit un arrondi est toujours effectué?
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°1   Marquer comme non lu.
GoldenCrystal Ecrit le: Lundi 13 septembre 2004 à 21:23 Déconnecté(e)    Voir le profil de GoldenCrystal Envoyer un email à GoldenCrystal Visiter le site WEB de GoldenCrystal Envoyer un message privé à GoldenCrystal  

Hmmm...
Ainsi qu'en je tappe 4936706897804105008, j'obtient 4.936707e18.

Déjà, est-ce que tu obtiens ce résultat avec printf ? Si c'est le cas, essaye de régler la précision voir si ça change qqc. Sinon, regarde le format en mémoire pour voir ce qu'il en est.
dans ce cas quelle est la limite d'un entier sous la forme d'un flottant, 12 chiffres?
Un nombre SMAP II BCD fait 10 octets -> 2 octets exposant, 8 octets mantisse => 2 chiffres par octet => 8*2 = 16 => 16 chiffres
Sinon, regarde bien ton résultat, ça ne serait pas un arrondi, mais plutôt une troncation :p
Kupo !
    
./Post n°2   Marquer comme non lu.
geogeo Ecrit le: Lundi 13 septembre 2004 à 21:28 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Déjà, est-ce que tu obtiens ce résultat avec printf ? Si c'est le cas, essaye de régler la précision voir si ça change qqc. Sinon, regarde le format en mémoire pour voir ce qu'il en est.


Ca change riien. :(

Sinon, regarde bien ton résultat, ça ne serait pas un arrondi, mais plutôt une troncation


%)
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°3   Marquer comme non lu.
GoldenCrystal Ecrit le: Lundi 13 septembre 2004 à 21:29 Déconnecté(e)    Voir le profil de GoldenCrystal Envoyer un email à GoldenCrystal Visiter le site WEB de GoldenCrystal Envoyer un message privé à GoldenCrystal  

Ah ué g dit une connerie... spa ma faute si y'avait 2 7 dans ton nombre #mac#
Mais le format en mémoire ça donne quoi ?
-Edité le Lundi 13 septembre 2004 à 21:31 par GoldenCrystal-
Kupo !
    
./Post n°4   Marquer comme non lu.
Kevin Kofler Ecrit le: Mardi 14 septembre 2004 à 01:00 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  


Es-tu sûr que l'arrondi ne soit pas effectué lors de l'affichage plutôt que lors de l'entrée?
atof ne fait que push_parse_text (aucun arrondi là-dedans) et estack_number_to_Float, qui est censé marcher aussi avec la précision maximale.
-Edité le Mardi 14 septembre 2004 à 01:01 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°5   Marquer comme non lu.
geogeo Ecrit le: Mardi 14 septembre 2004 à 07:31 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Bah c'est assez simple, j'utilise atof, j'enregistre ça dans un fichier 'TEXT', j'ouvre le fichier texte et j'ai un arrondi et ça me le fait avec d'autres nombres plus petit aussi. Donc le format en mémoire est un flottant de 10 octets.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°6   Marquer comme non lu.
GoldenCrystal Ecrit le: Mardi 14 septembre 2004 à 18:05 Déconnecté(e)    Voir le profil de GoldenCrystal Envoyer un email à GoldenCrystal Visiter le site WEB de GoldenCrystal Envoyer un message privé à GoldenCrystal  

tu mets quoi dans toin fichier 'TEXT' ? le nombre float lui même ou sa représentation décimale ?
Kupo !
    
./Post n°7   Marquer comme non lu.
geogeo Ecrit le: Mardi 14 septembre 2004 à 19:54 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Le nombre flottant directement soit *(float *)(TokenFile_Buffer+x)=my_float.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°8   Marquer comme non lu.
GoldenCrystal Ecrit le: Mardi 14 septembre 2004 à 20:15 Déconnecté(e)    Voir le profil de GoldenCrystal Envoyer un email à GoldenCrystal Visiter le site WEB de GoldenCrystal Envoyer un message privé à GoldenCrystal  

hmm ba c con alors %)
essaye d'écrire ton propre atof sinon (ça sera certainement plus rapide et précis que le atof de tigcc, mais bcp plus chiant à faire :D)
Kupo !
    
./Post n°9   Marquer comme non lu.
geogeo Ecrit le: Mardi 14 septembre 2004 à 20:57 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Euh le beaucoup plus chiant me bloque :D
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°10   Marquer comme non lu.
GoldenCrystal Ecrit le: Mardi 14 septembre 2004 à 22:33 Déconnecté(e)    Voir le profil de GoldenCrystal Envoyer un email à GoldenCrystal Visiter le site WEB de GoldenCrystal Envoyer un message privé à GoldenCrystal  

Bon, en fait si tu veux c facile (tu stockes les digits un par un et tu notes la position de la virgule s'il y en a une, sinon, tu considères qu'elle est à la fin), mais c gérer l'exposant qui est chiant %)
Kupo !
    
./Post n°11   Marquer comme non lu.
geogeo Ecrit le: Mercredi 15 septembre 2004 à 11:55 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


C'est pas cool tout ça. #ouin#
Aller op, je sent que mon projet va grossir de 4 Ko rien que pour ça. %)
En tout cas pour l'instant on va faire avec ce petit problème. #feignant#
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°12   Marquer comme non lu.
GoldenCrystal Ecrit le: Mercredi 15 septembre 2004 à 19:32 Déconnecté(e)    Voir le profil de GoldenCrystal Envoyer un email à GoldenCrystal Visiter le site WEB de GoldenCrystal Envoyer un message privé à GoldenCrystal  

4 Ko pour une routine de parsing de flottants ? #triso#
En asm bien optimisé ça doit pouvoir tenir dans 200 octets (et je vise large ^^), et en C (correctement codé, cela va de soi) dans moins de 1 Ko.
Kupo !
    
./Post n°13   Marquer comme non lu.
geogeo Ecrit le: Mercredi 15 septembre 2004 à 19:55 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Sans doute j'en sais fiche rien. J'connais même pas le format des flottants donc voilà quoi. :D
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°14   Marquer comme non lu.
GoldenCrystal Ecrit le: Mercredi 15 septembre 2004 à 19:58 Déconnecté(e)    Voir le profil de GoldenCrystal Envoyer un email à GoldenCrystal Visiter le site WEB de GoldenCrystal Envoyer un message privé à GoldenCrystal  

Tu utilises des flotants sans t'être documenté sur comment ils fonctionnaient et pkoi ct de la m.... ?
16 bits exposant
64 bits mantisse
Kupo !
    
./Post n°15   Marquer comme non lu.
Pollux Ecrit le: Jeudi 16 septembre 2004 à 01:35 Déconnecté(e)    Voir le profil de Pollux Envoyer un email à Pollux Envoyer un message privé à Pollux  

juste pour information j'avais fait une lib pour le format FFP (Fast Floating Point, format binaire 32 bits), ça tenait en 3ko et qques en contenant quasiment toutes les routines nécessaires (conversions ascii/float/entier, addition/soustraction, multiplication, division, comparaison, exp, log, sin/cos/tan...)

sachant qu'en BCD c bien plus simple de faire une routine de conversion qu'en binaire... (en binaire, la gestion d'un exposant décimal peut être pénible ; là, la conversion est *vraiment* toute simple)
    
./Post n°16   Marquer comme non lu.
geogeo Ecrit le: Jeudi 16 septembre 2004 à 13:14 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Tu as diffusé cette librairie? Ou est-ce possible de pouvoir l'intégrer dans mon projet?!
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
  :: Index » Forum Ti68K » Programmation C » Chaînes de caractères -> flottant avec atof (16 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 49.15ms avec 18 requetes