1. 程式人生 > >寫一段程式,比較浮點數和零的值得大小

寫一段程式,比較浮點數和零的值得大小

分析:無論是float還是double型別的變數,都是有精度限制的,所以一定要避免將浮點變數用“==”或者“=”與數字比較,應設法轉化成“>=”或者“<=”的形式。

應當將if(x==0.0)轉化為 if((x >= -EPSINON)&&(x <= EPSINON))  //epsinon為修正值

案例1:

#include <stdio.h>
{
double temp = 0.3;
printf("%d\n",(int)(temp*10));
return 0;
}

此時的列印結果是2,當temp=0.7時,列印結果是6;

浮點數與零比較應該轉化為下面的形式:

#include <stdio.h>
{
double temp = 0.0;
if(temp >= -0.000001 && temp <= 0.000001)
printf("temp == 0\n");
else
printf("temp != 0\n");
return 0;
}