C语言浮点数误差如何解决?如下
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言浮点数误差如何解决?如下相关的知识,希望对你有一定的参考价值。
#include
main()
int k;
float a=2.6;
while(a>=1)
sx=sx-1;
k++;
if(sx<1)
printf("1=%d\n",k);
k=0;
while(sx>=0.5)
printf("0.5=1\n");
sx=sx-0.5;
while(sx>=0.2)
sx=sx-0.2;
k++;
if(sx<0.2)
printf("0.2=%d\n",k);
while(sx>=0.1)
sx=0;
printf("0.1=1\n");
getch();
换成 sx=2.1也是一样, 这个0.1的误差应如何解决呢?
要判断一个浮点数是否等于另外一个浮点数,一般是求二者的差,差的绝对值小于某给定值就算相等 像这样:
while((sx-0.1)<0.00001&&(0.1-sx)<0.00001)
sx=0;
printf("0.1=1\n");
总之,在程序中应该尽量避免浮点数的比较
以上是关于C语言浮点数误差如何解决?如下的主要内容,如果未能解决你的问题,请参考以下文章