注意浮点数精度问题
// 输出 nan inf
#include "stdio.h"
#include <stdlib.h>
#include <time.h>
int main()
{
printf("%f\n",12.0/0.0);
// printf("%d\n",12/0);
printf("%f\n",-12.0/0.0);
printf("%f\n",0.0/0.0);
float a,b,c;
a = 1.2345f; // 后缀f表示a为float,如果没有后缀,会以为是double类型
b = 2.2345f; // 浮点数运算精度需要注意, 比如此处a b在计算机内实际不是准确的1.2345 2.2345
c = a + b ;
if (c == 3.469) **//这个相等条件通常都是无法满足的,因为浮点数精度不准确。 常采用 fabs(c - 3.469) < 1e-8来判断**
{
printf("c = a + b");
}
else
printf("%.9f\n",c);
return 0;
}