系统相关
首页 > 系统相关> > 有些实数在计算机内存储是不精确的,如何验证?

有些实数在计算机内存储是不精确的,如何验证?

作者:互联网

我们列出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