C语言编程入门——浮点数

来源:互联网 发布:淘宝上的康之家 编辑:程序博客网 时间:2024/06/06 18:31

    这个涉及到浮点数在计算机中的存储问题。可以测试如下程序:

# include <stdio.h>int main(void){float i = 4.3123999;if (i - 4.3123999==0)printf("i为零。\n");elseprintf("i不为零。\n");return 0;}

输出结果为:i不为零。

这是因为浮点数在计算机中的存储精度问题,浮点数不能准确存储一个小数,具体可见《C语言学习笔记》。


测试程序2:

# include <stdio.h>int main(void){double i = 0.00000001;printf("i = %lf\n", i);return 0;}/*2012年12月11日23:56:51结果为i = 0  验证了浮点数不能准确存储一个小数。*/


那么,如何判断一个浮点数是否为0呢?

程序如下:

# include <stdio.h>int main(void){float i = 0;/*if (0 == 0)printf("是零!\n");elseprintf("不是零!\n"); //此方法错误!*/if (i-0.000001 <= 0.000001)printf("是零!\n");elseprintf("不是零!\n");return 0;}


1 0
原创粉丝点击