第1个回答 2013-04-09
//c++ code
#include <limits>
template<typename T>
bool numeric_equal(T lhs, T rhs)
{
static const T epsilon = std::numeric_limit<T>::epsilon();
T delta = lhs - rhs;
return (-epsilon <= delta) && (delta <= epsilon);
}
//for test
int main(int, char*[])
{
float f1 = 11 * 0.3;
float f2 = 3 + 0.3f;
numberic_equal(f1, f2);
numberic_equal(1, 2);
numberic_equal(3.14, 3.141592653);
return 0;
}
第2个回答 2013-04-09
#include <stdio.h>
#include <math.h>
void main()
{
float x,y=0.3;
y=y*11;
x=3+0.3;
if(fabs(x-y)<0.00001) printf("ok,x==y");
else printf("no,x!=y");
}