您的位置:首页 > 其它

啤酒和饮料之浮点数的大小比较不能用==号

2015-04-09 21:36 405 查看
二进制存储的原因,浮点数的大小比较不能用==号。

简化的处理是用fabs(a-b)<1e-6之类的方式



标题:啤酒和饮料

啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元。

我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。

#include<stdio.h>
#include<math.h>
int main()
{
	int x,y;//x代表瓶酒数,y代表饮料数
	for(x=1;x<40;x++)
	{
		for(y=1;y<50;y++)
		{
		//	if((2.3*x+1.9*y==82.3)&&(x<y))//错误的 浮点数的大小比较不能用==号。
			if((fabs(2.3*x+1.9*y-82.3)<0.000006)&&x<y)
			{
				printf("%d\n",x);
			}
		} 
	} 
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: