Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
6095 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

incompréhension du fonctionnemnent des nombres flottants

n°532014
Taz
bisounours-codeur
Posté le 05-10-2003 à 20:41:55  profilanswer
 

Reprise du message précédent :
faisez bien attention que
 

Code :
  1. float a;
  2. // ...
  3. a==0.0;
  4. a==0.0f;


 
sont deux choses différentes

mood
Publicité
Posté le 05-10-2003 à 20:41:55  profilanswer
 

n°532018
iS@mi
Resistance is futile !
Posté le 05-10-2003 à 20:43:48  profilanswer
 

Taz a écrit :

faisez bien attention que
 

Code :
  1. float a;
  2. // ...
  3. a==0.0;
  4. a==0.0f;


 
sont deux choses différentes


 
Oui, juste mais j'ai oublié la raison ?
C'est pas une question de précision ?

n°532019
chrisbk
-
Posté le 05-10-2003 à 20:44:33  profilanswer
 

Taz a écrit :

faisez bien attention que
 

Code :
  1. float a;
  2. // ...
  3. a==0.0;
  4. a==0.0f;


 
sont deux choses différentes


 
d'un point de vue code generé je me le demande

n°532023
Taz
bisounours-codeur
Posté le 05-10-2003 à 20:47:05  profilanswer
 

chrisbk a écrit :


 
d'un point de vue code generé je me le demande

donc aucune certitude. d'ou l'interet de s'en préoccuper

n°532026
chrisbk
-
Posté le 05-10-2003 à 20:49:24  profilanswer
 

Taz a écrit :

donc aucune certitude. d'ou l'interet de s'en préoccuper


 
un coup de disasm et c bon
 
vu que :
 
1) la fpu fonctionne en interne en 80bits
2) c'est elle qui va se charger de la comparaison
 
alors, et bien, on peut vraiment se poser la question. La seule difference sera a priori au premier fld (un DWORD pour l'un et un QWORD pour l'autre)
 
(ok, x87 only, on sait pas pour les autres, planplanplan)

n°532032
Taz
bisounours-codeur
Posté le 05-10-2003 à 20:54:17  profilanswer
 

chrisbk a écrit :

(ok, x87 only, on sait pas pour les autres, planplanplan)

comme tu dis

n°532159
Taz
bisounours-codeur
Posté le 05-10-2003 à 22:40:34  profilanswer
 

bon alors j'ai pété un plomb aujourd'hui ... abs en C++ fonctionne pour tous les types

n°532168
Carbon_14
Posté le 05-10-2003 à 23:01:48  profilanswer
 

Si ses valeurs sont des prix, ils peuvent être traités en centimes. En long, y a plus de pb d'espilon. Suffit de diviser par 100 pour retrouver les (maudits) float.

n°532169
Taz
bisounours-codeur
Posté le 05-10-2003 à 23:03:14  profilanswer
 

CARBON_14 a écrit :

Si ses valeurs sont des prix, ils peuvent être traités en centimes. En long, y a plus de pb d'espilon. Suffit de diviser par 100 pour retrouver les (maudits) float.

effectivement, je pense que c'est mieux

n°532176
SquiZZ
Posté le 05-10-2003 à 23:18:23  profilanswer
 

Taz a écrit :

effectivement, je pense que c'est mieux


 
sauf si on applique un pourcentage au nombre, comme la TVA par exemple. On se retrouve alors avec une erreur d'ordre 1E-2 au lieu d'une erreur d'ordre 1E-16.
pas très précis tout de même  :whistle:

mood
Publicité
Posté le 05-10-2003 à 23:18:23  profilanswer
 

n°532178
Tetedeienc​h
Head Of God
Posté le 05-10-2003 à 23:19:51  profilanswer
 

J'ai une question bête.
 
Personellement, j'aurai pas cherché midi a 14 heures. Plutot que d'exprimer mes valeurs en flottants, j'aurai enregistré chaque prix en centimes d'euros, et fait mes calculs en centimes d'euros.
 
Pour avoir en euros, tu... divises par 100.
 
Et tes calculs ont plus aucun probleme de précision :D
 
Enfin je dis ca :ange:


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
n°532179
Tetedeienc​h
Head Of God
Posté le 05-10-2003 à 23:20:21  profilanswer
 

CARBON_14 a écrit :

Si ses valeurs sont des prix, ils peuvent être traités en centimes. En long, y a plus de pb d'espilon. Suffit de diviser par 100 pour retrouver les (maudits) float.


 
GRILLED :fou:
 
Tjs lire la deuxieme page avant de répondre, toujours lire la deuxieme page avant de répondre...


Message édité par Tetedeiench le 05-10-2003 à 23:20:47

---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
n°532193
Taz
bisounours-codeur
Posté le 05-10-2003 à 23:39:34  profilanswer
 

dans tous les cas il faut définir une bonne politique

n°532204
iS@mi
Resistance is futile !
Posté le 06-10-2003 à 00:02:37  profilanswer
 

tetedeiench a écrit :

J'ai une question bête.
 
Personellement, j'aurai pas cherché midi a 14 heures. Plutot que d'exprimer mes valeurs en flottants, j'aurai enregistré chaque prix en centimes d'euros, et fait mes calculs en centimes d'euros.
 
Pour avoir en euros, tu... divises par 100.
 
Et tes calculs ont plus aucun probleme de précision :D
 
Enfin je dis ca :ange:


 
C'est pas bête mais bon, tous les prix qui sont dans les bases de données sont en double et j'ai pas trop envie de tout modifier, sûrtout que mon problème n'est lié qu'avec ce qui a été décrit ici, le reste fonctionne impécablement (addition et soustraction uniquement).

n°532213
bjone
Insert booze to continue
Posté le 06-10-2003 à 02:19:30  profilanswer
 

personnellement je confierais pas des calculs monétaires à un fpu ou à une unitée entière....
 
passke sur des gros chiffres y'a du fric qui va se perdre :D

n°532218
LeGreg
Posté le 06-10-2003 à 04:15:45  profilanswer
 

si tu fais tous tes calculs sur des euros au centieme pres
tu fais tes calculs en precision fixe. (ton unité de base devient le centime d'euro)
 
Si ça n'a pas été déjà dit.
 
LeGreg

n°532219
LeGreg
Posté le 06-10-2003 à 04:16:18  profilanswer
 

Oups faudrait que je lise les topic jusqu'au bout avant de poster..

n°532258
nraynaud
lol
Posté le 06-10-2003 à 09:51:02  profilanswer
 

Juste un petit détail : en monétaire, en général on travaille en fractionnaire avec des nombres de taille arbitraire. Ce qui évite un certain nombre de conneries (dans le mesur où c'est pas un pizzaïolo qui fait la lib de calcul ce qui dans le cas présent n'est pas gagné).
 
Autre détail : quand on prétend bosser en valeurs flottantes, on a en général le papier de Goldberg en version imprimée (avec le petit boudin en platique et tout) sous le coude. Ce qui en cas de pb est largement plus rapide et précis qu'un forum.
 
comme j'en ai marre de faire du google pour des gens qui ont la flemme de le faire (et que j'ai le papier sous le coude, malgré qu'ne ce moment je m'occupe pas de calcul) voici les références : "What Every Computer Scientist Should Know About Floating-Point Arithmetic" David Golberg (ACM Computing Surveys Vol 23 No 1, mars 1991)

n°532431
iS@mi
Resistance is futile !
Posté le 06-10-2003 à 14:19:52  profilanswer
 

nraynaud, je fais de la programmation à titre de passe temps, ce n'est pas ma profession et je suis encore moins mathématiciens.
 
Si tu parles d'utiliser des fractions, c'était mon idée au début du projet mais comme il n'y avait aucun calcul de pourcentage, division ou encore multiplication à faire, je me suis pas cassé la tête à faire des choses complexes pour faire des calculs simples ( 3.25 + 5.30 = 8.55 ).
 
Maintenant, j'ai tout converti en centime d'euro et ca marche tout aussi bien qu'avant avec peut-être plus de sûreté.
 
Sinon, merci pour vos interventions, j'ai appris plein de choses.
 
PS: j'ai trouvé la documentation de David Golberg sur le net, j'irai jeter un petit coup d'oeil.

n°532448
noldor
Rockn'roll
Posté le 06-10-2003 à 14:31:42  profilanswer
 

tout convertir en centimes d'euros, ça marche jusqu'au jour ou on a des articles qui coutent 2,3456 euros (ça existe)


---------------
http://runnerstats.net
n°532486
iS@mi
Resistance is futile !
Posté le 06-10-2003 à 14:50:57  profilanswer
 

noldor a écrit :

tout convertir en centimes d'euros, ça marche jusqu'au jour ou on a des articles qui coutent 2,3456 euros (ça existe)


 
Ca me fait penser que le programme que je suis en train de créer n'est que le petit frère d'un vieux programme écrit sous DOS et dont le programmeur n'avait pas prévu qu'il y aurait un jour des euros !
 
Je vais tout convertir en Fraction en partant du principe que l'unité monétaire peut éventuellement changer et puis ca peut être utile si dans l'avenir je décide de mettre un système de calcul de pourcentage.
 
Je pense que je dois encore avoir une class quelque part qui gère très bien les fractions.

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
[HTML] Format des nombres dans un input[VB] Question sur la facon de VB de procéder avec les nombres
Surnaturel => conversion de nombres Access/VBA, incompréhensible !!!Comment obtenir des nombres aléatoires mais seulement des entiers ?
[PHP] Nombres de réponses d'une query[VBA excel] rouddown et nombres décimaux
[C] gestion des nombres aléatoiresPGCD de plus de 2 nombres
modification du format des nombres[php] valeur comprise entre deux nombres
Plus de sujets relatifs à : incompréhension du fonctionnemnent des nombres flottants


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)