有些实数在计算机内存储是不精确的,如何验证?
作者:互联网
我们列出0-10,这11个数的开平方b,b*b,比较一下结果。
并且我们保留到小数点后10位和20位。
#include<bits/stdc++.h>
using namespace std;
int main()
{
for(int i=0;i<11;i++)
{
double b;
b=sqrt(i);
//cout<<b<<" "<<b*b<<" "<<i<<endl;
printf("%.10lf %.20lf %d\n",b,b*b,i);
}
}
可以看出,2、3、5、6、7、8、10,这些数,开方后得到b,b*b的结果也不等于开方前的数据。
说明b在内存中已经不精确了。可能是无理数,做截断处理了。
标签:10,存储,%.,验证,实数,int,开平方,精确,开方 来源: https://blog.csdn.net/weixin_43917370/article/details/121962032