19 messages in org.openoffice.fr.progRe: [prog] Livre Programmation OOo : ...
FromSent OnAttachments
Pierre - Utilisateur d'OOoNov 9, 2005 2:34 am 
Bernard MarcellyNov 9, 2005 5:13 am 
Pierre - Utilisateur d'OOoNov 9, 2005 8:44 am 
Bernard MarcellyNov 9, 2005 11:24 am 
Yves CrespinNov 9, 2005 11:27 am 
Pierre - Utilisateur d'OOoNov 10, 2005 12:29 am 
Pierre - Utilisateur d'OOoNov 10, 2005 12:48 am 
Pierre - Utilisateur d'OOoNov 10, 2005 12:50 am 
Matthieu CoutiereNov 10, 2005 1:25 am 
Bernard MarcellyNov 10, 2005 1:48 am 
Pierre - Utilisateur d'OOoNov 10, 2005 2:23 am 
Pierre - Utilisateur d'OOoNov 10, 2005 2:32 am 
Bernard MarcellyNov 10, 2005 2:45 am 
Pierre - Utilisateur d'OOoNov 10, 2005 3:03 am 
Pierre - Utilisateur d'OOoNov 10, 2005 6:42 am 
Bernard MarcellyNov 10, 2005 8:20 am 
Pierre - Utilisateur d'OOoNov 10, 2005 10:01 am 
Pierre - Utilisateur d'OOoNov 11, 2005 1:42 am 
Pierre - Utilisateur d'OOoNov 11, 2005 2:18 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [prog] Livre Programmation OOo : les nombres réels p.55Actions...
From:Pierre - Utilisateur d'OOo (pier@laposte.net)
Date:Nov 11, 2005 2:18:17 am
List:org.openoffice.fr.prog

Bernard Marcelly a écrit :

Bonjour Yves Crespin Message du 2005-11-09 20:28:

valeurs extrêmes acceptables avec les types Single et Double.

dans limits.h regarde les valeurs pour les float et les double en configuration standard et étendue. Puis tu vérifies si les valeurs sont acceptés en faisant une addition et une soustraction. Yves

Je n'ai pas trouvé d'information dans ce fichier (ou je n'ai pas trouvé le bon). Par contre j'ai fait des essais. Les résultats sont assez intéressants (vu sous Win XP, processeur AMD Athlon XP, OOo 1.1.4 et 1.9).

Type Basic Single Minimum : environ 1.1755E-38 Maximum : environ 3.402823E+38

Avec OOo 1.1.5., Win-XP, Intel Celeron 2.4G

Type Basic Single Minimum : 1.175494351E-38 (1.175494350E-38 produit un débordement à l'initialisation)

Maximum : 3.402823000E+38 (3.402823001E+38 produit un débordement à l'initialisation)

Remarque : autant de chiffre pour un Single n'a aucun sens... à priori la précision est de l'ordre de 7 chiffres

Type Basic Double --- attention ça se complique ----

Minimum : environ 1.0E-307 des valeurs inférieures sont acceptées en initialisation mais assimilées à zéro, exemple: dim v as double, z as double v = 3E-9999 z = 0 print v=z ' donne : True

1.0000000000000002E-307 ' est différent de 0 1.0000000000000001E-307 ' est assimilé à 0

Dim B As Double B=1.0000000000000002E-307 Print (B=0) ' Affiche False B=1.0000000000000001E-307 Print (B=0) ' Affiche True

En calculs on peut obtenir des valeurs inférieures, exemple:

dim v1 as double, v2 as double, d as double d = 234567E10 v1 = 1.1E-307 v2 = v1 / d print v2

La limite calculable est 4.94065645841247E-324 ensuite on obtient zéro pour des valeurs inférieures.

Maximum : environ 1.79769312897932E+308 En calculs on observe un débordement au-delà En affichage on observe un bouclage OOo au-delà !

Cela colle exactement avec les valeurs indiquées dans l'aide (et dans le livre de Bernard) 1,79769313486232 x 10E308 et 4,94065645841247 x 10E-324

Exemple pour faire boucler OpenOffice.org:

dim v as double v = 1.8e308 print v ' bouclage infini sur cette instruction

Bien entendu, une telle valeur n'a aucune signification physique. On ne devrait pas même approcher 1E+308 Bernard