哪位大佬帮忙解释下以下程序中double不能换成float?

#include <stdio.h>
int main(){
int n,i,t;
    double s,b,a,r;
    scanf("%d",&t);
    for(i=0;i<t;i++){
        scanf("%d",&n);
        r=(double)n/2;
        a=n*n;
        b=2*3.14*r*r;
        s=a+b;
        printf("%.2lf\n",s);
    }
    return 0;
}
全部评论
float精度不够
点赞 回复
分享
发布于 2020-06-01 02:42
精度问题,double是双精度(有效数字16位),float是单精度(有效数字7位)
点赞 回复
分享
发布于 2020-06-01 08:49
联易融
校招火热招聘中
官网直投

相关推荐

点赞 评论 收藏
转发
点赞 1 评论
分享
牛客网
牛客企业服务