Marc Boyer écrivit :
> Le 15-10-2012, Antoine Leca <ro...@localhost.invalid> a écrit :
>> Marc Boyer écrivit :
>>> Faut surtout garder en tête que l'analyse numérique est un job
>>> à part, [...] ça devient sérieux, il faut faire très attention.
>>>
>>> On rapporte toujours l'exemple d'un logiciel de compta
>>> dont les sommes HT + TVA != TTC.
>>
>> Et le rapport avec soit le langage C, soit l'analyse numérique est ?
>
> Ben, que (x) et (x * (1-e)) + (x*e) ne sont pas garantis comme égaux
> en flottant, même pour des valeurs asez "assez peu" de chiffres
> significatifs (une TVA, c'est 4 chiffres significatifs et une facture
> chez le commun des mortel dépasse rarement les 10 chiffres).
On est hors sujet mais je continue un peu : il me paraît évident (depuis
de nombreuses années, donc avant de programmer en C) que les
applications de comptabilité ne doivent pas manipuler les montants en
utilisant directement les types flottants, parce que les chiffres
décimaux après la virgule n'ont pas de représentation unique.
Comme en C il n'y a/avait pas de virgule fixe, cela ne laissait que les
type entiers ; autrement dit en C89 au maximum 7+2 chiffres
significatifs ce qui était insuffisant. D'où l'idée proposée par
certains d'utiliser le type double qui garantit 15 chiffres, suffisant
en pratique en comptabilité *si on prend garde à calculer en centimes*
(ou en millimes voire décimillimes). Les doubles ne sont alors utilisée
que comme des entiers avec une étendue de 53 bits (cf. le message de
Samuel); évidemment depuis C99 cela n'est plus nécessaire (à supposer
que beaucoup de fous ont programmé de la compta en C).
À propos du nombre de chiffres, un total de bilan en pesètes ou en lires
atteint sans difficulté 11 chiffres avant la virgule... C'est vrai
qu'avec l'euro on est revenu avec des sommes plus facile à manipuler,
mais il existe toujours des pays où on peut avoir besoin de plus de
chiffres (un milliard de yens ou de francs CFA/CFP n'est pas une facture
irréaliste).
À propos de calcul de TVA, pour moi la TVA est toujours en centimes
(même si la manière d'arrondir peut être l'objet de discussions
«intéressantes» avec le fisc...) Par contre, la formule HT + TVA != TTC
peut apparaître quand tu dois recalculer le montant HT à partir du TTC:
il est des fois où cela ne tombe pas juste !
Antoine