Project

General

Profile

Anomalie #68

Erreur dans la macro FLOAT_EQ (comparaison de deux floats) et proposition de solution

Added by Vincent Morard about 14 years ago.

Status:
Nouveau
Priority:
Normal
Assignee:
-
Category:
-
Start date:
02/09/2010
Due date:
% Done:

100%

Estimated time:
0.00 h

Description

La macro FLOAT_EQ permet de comparer deux float à Epsilon près.

Cependant : FLOAT_EQ(10.0,10.0) retourne TRUE -->OK
mais
V=DataTraits<F_SIMPLE >::default_value::max_value();
FLOAT_EQ(V,V) retourne FALSE !!!

Il faut remplacer la macro actuelle:
#define FLOAT_EQ(x,v) (((v - EPSILON) < x) && (x <( v + EPSILON)))

par celle-ci:
#define FLOAT_EQ(x,y) (abs(x-y) < EPSILON)

No data to display

Also available in: Atom PDF