浮点数的比较

原创 2013年12月02日 19:38:27
C语言中浮点数是有精度的!!
也就造成了浮点数的比较会产生误差,因为精度有限,精度外的数是不确定的。
#include<stdio.h>

void cmp_float(float a, float b);
void cmp_float_e(float a, float b);

int main() {
	float a;
	float b;

	a = 1.123456789;
	b = 1.123456879;
	cmp_float(a,b);
	cmp_float_e(a,b);

	a = 1.1234567;
	b = 1.1234568;
	cmp_float(a,b);
	cmp_float_e(a,b);

	return 0;
}
void cmp_float(float a, float b) {
	printf("%f\n", a);
	printf("%f\n", b);
	printf("cmp_float()  ");
	if (a > b)
		printf("a > b\n");
	else if (a < b)
		printf("a < b\n");
	else 
		printf("a = b\n");
}
void cmp_float_e(float a, float b) {
	double e = 0.000001;
	printf("cmp_float_e()  ");
	if (a - b > e)
		printf("a > b\n");
	else if (a - b < e)
		printf("a < b\n");
	else 
		printf("a = b\n");
}

第一次 a = 1.123456789

             b = 1.123456879

这里不用精度e的话,居然相等,所以说,浮点数的比较还是很需要用精度来控制的。

虽然这里只是简单的举例,但是已经足够说明问题了。


第二次 a = 1.1234567

             b = 1.1234568


相关文章推荐

浮点数结构详细解释比较全

  • 2010年11月03日 22:15
  • 1.39MB
  • 下载

深入理解C++浮点数(float、double)类型数据比较、相等判断

浮点数在内存中的存储机制和整型数不同,其有舍入误差,在计算机中用近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基...
  • educast
  • educast
  • 2013年04月24日 16:34
  • 10565

深入理解C++浮点数(float、double)类型数据比较、相等判断

浮点数在内存中的存储机制和整型数不同,其有舍入误差,在计算机中用近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基...

永远不要比较两个浮点数是否相等

PHP手册里有一句话:永远不要比较两个浮点数是否相等。 以前没太在意,最近在项目中因为这个问题掉坑里了,所以留文铭记。 计算机内部处理浮点数的方式决定了浮点数不可能100%的精确,所以在处理浮点数...
  • tony_Ju
  • tony_Ju
  • 2012年02月08日 11:15
  • 1982

浮点数的比较(2)

1. 正数的情况       根据IEEE的内存结构, 指数在高位,尾数在低位,浮点数大的对应的把其内存结构按照整数来理解进行比较的时候,情况也是成立的,因此在这里如果把他们进行比较的话,作为整数运...
  • wj3319
  • wj3319
  • 2011年09月25日 22:44
  • 218

浮点数的比较

浮点数比较问题

01 JAVA 基础补充 浮点数的比较

这篇文章主要记录一些关于精度问题的小知识,当然也不知道对不对,先记录一下~啦啦啦~我是勤劳的屌丝程序猿 少年。。 顺便复习:原码,反码,补码对于正数来说,都是一样的,对于负数,反码除符号位之外都取...

浮点数的相等比较

今天群里边一哥们儿——哦,确切地说,应该是一姊妹——问到了Python中怎样判断一个浮点数的小数部分是不是0,本意是要找和C语言中的fmod函数相同功能的函数的,在Python中在math模块中有这个...
  • dymx101
  • dymx101
  • 2011年03月15日 10:32
  • 4029

浮点数的比较(转)

首先,这个不算原创,原文是洋文的,我翻译了一下 写这个文章的人绝对是个大师,虽然知识并不是很深奥,不过想法真的很不错,值得学习 两个月前忽然看见的这篇文章,昨天仔细读了一遍,翻译了一下...
  • whu_zxl
  • whu_zxl
  • 2012年04月29日 20:04
  • 505

蓝桥杯 结果填空 海盗比酒量 浮点数比较

有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无几,海盗船...
  • wr132
  • wr132
  • 2015年04月08日 16:23
  • 930
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:浮点数的比较
举报原因:
原因补充:

(最多只允许输入30个字)