如何比较两个double型数值的大小?
本帖最后由 陌雨 于 2016-1-13 19:36 编辑如题!!!
今天写了一个代码 有人告诉我说double不能像我这样比较大小 如下:
/*设计函数min(x,y),返回两个double数值中小的一个,
*/
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<windows.h>
double ming(double *x,double *y);
int main(void)
{
double a,b,c;
scanf("%d %d",&a,&b);
c=ming(&a,&b);
printf("两个数中较小值是%f\n",c);
system("pause");
return 0;
}
double ming(double *x,double *y)
{
double c;
c=*x>*y?*y:*x;
return c;
}
那如何正确比较double型数值的大小呢? double ming(double *x,double *y)
又不是交换数据,干嘛要传地址? 可以比较差值<1e-6这样 可以比较大小,但无法比较是否等值,如果要比较是否等值,需要设置一个精度范围。
页:
[1]