更新时间2018-03-06 19:58:37
#include<stdio.h>
# define PI 3.14159265358979323
int main()
{
int r;
float s;
scanf("%d",&r);
s=PI*r*r;
printf("%1.7f",s);
return 0;
}
这是一道求圆的面积的。但是上面用float求结果时输入r=10时错误的,改为用double却正确了。请问俩者严格上语法使用有什么规则区别吗?
当s为float,r=10时
结果
10
314.1592712
而s为double时
结果为
314.1592654
这里不存在哪个结果是错误的,只是精度问题
而精度的话,涉及的是计算机基础知识,有关浮点的存储
你可以参考下IEEE754标准
用float定义时,输入数值时得输入小数,如上面10.000,用double定义时,可以不输入小数.
上一篇:什么是.net虚拟机