请教一道c语言的问题 - 爱问答

(爱问答)

请教一道c语言的问题

#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定义时,可以不输入小数.

相关标签:c语言

下一篇:互联网的各个职业分类,涉及到编程代码的。

上一篇:什么是.net虚拟机

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?