有关浮点数进行计算比较时要注意的一些小细节

先看一个有关浮点数除法运算的一个简单例题,也是比较容易出错的题目.

7-117 圆内外 (15分)

小C学英语很努力,可惜学习方法不对,英语成绩不上不下,结果慢慢对英语失去了兴趣,不管怎么说还是上了本地的一所高级中学,成了一个高中生。作为理科生,小C的数理化还是比较不错的,所以经常有女生来请教问题。今天数学老师讲到椭圆方程x2/a2+y2/b2=1 (a,b>0) ,数学老师问,如果已知椭圆方程以及a、b,给定一点(x、y),判断该点相对椭圆的位置。小C听到这个问题笑了, 他知道只要把点坐标代入方程,左边的结果大于1就是椭圆外,小于1为椭圆内。

输入格式:
多组测试数据, 每组测试数给定a b x y,4个整数。(1<=a,b,x,y<=100)

输出格式:
根据相对位置分别输出 “out ellipse” 、 “in ellipse”。(数据中不会出现在椭圆上这种情况)每个输出占一行。

输入样例:
在这里给出一组输入。例如:

1 2 2 2
1 2 0 0

输出样例:
在这里给出相应的输出。例如:

out ellipse
in ellipse

题目很简单,直接往里面带入就可以了,但是要注意它是进行的除法运算,当遇到有浮点数的除法运算时,要注意误差问题!

#include
#include
using namespace std;
int main(){
	double a,b,x,y=0;
	double result;
	while(cin>>a>>b>>x>>y){
//		result=1.0*pow(x,2)/pow(a,2)+1.0*pow(y,2)/pow(b,2);     
//		if(result-1<1e-6){    如果用除法运算会有误差,所以让它计算所得的结果减去要比较的数小于一个极小数(1e-6[也就是10的负六次方])
//			cout<<"in ellipse"<

有关浮点数进行计算比较时要注意的一些小细节_第1张图片

你可能感兴趣的:(c++,c++)