#include <stdio.h>
/*
n1小于n2,返回-1
n1等于n2,返回0
n1大于n2,返回1
*/
int double6cmp(double n1, double n2)
{
if (n1 == n2)
return 0;
if (n1 < n2)
{
if ((n2 - n1) < 1e-6)
return 0;
else
return -1;
}
else
{
if ((n1 - n2) < 1e-6)
return 0;
else
return 1;
}
}
/*
n1小于n2,返回-1
n1等于n2,返回0
n1大于n2,返回1
*/
int double12cmp(double n1, double n2)
{
if (n1 == n2)
return 0;
if (n1 < n2)
{
if ((n2 - n1) < 1e-12)
return 0;
else
return -1;
}
else
{
if ((n1 - n2) < 1e-12)
return 0;
else
return 1;
}
}
void main()
{
double n1 = 0.1;
double n2 = 1 - 0.9;
if (n1 == n2)
printf("n1等于n2\n");
if (n1 < n2)
printf("n1<n2\n");
if (n1 > n2)
printf("n1>n2\n");
printf("n1=%.50f\n", n1);
printf("n2=%.50f\n", n2);
n1 = 12345678.12345678;
n2 = 12345678.12345679;
printf("double6cmp(n1, n2)=%d\n", double6cmp(n1, n2));
printf("double12cmp(n1, n2)=%d\n", double12cmp(n1, n2));
getchar();
}
运行结果: