Deerainy 2022-10-15 15:41 采纳率: 100%
浏览 11
已结题

宏常量和const使用结果不同

问题遇到的现象和发生背景

宏常量定义和const定义的结果不同

用代码块功能插入代码,请勿粘贴截图
#include <stdio.h>
int main()
{
const float PI=3.14;
float r=0,c=0,s=0;
scanf("%f %f %f",&r,&c,&s);
c=2*PI*r;
s=PI*r*r;
printf("circum=%f,area=%f",c,s);
return 0;
}

运行结果及报错内容

circum=15.700001,area=19.625000

我的解答思路和尝试过的方法
#define PI 3.14

我想要达到的结果

circum=15.700000,area=19.625000

  • 写回答

2条回答 默认 最新

  • 浪客 2022-10-16 01:05
    关注

    #define PI 3.14 是在预处理的时候用3.14替换PI,3.14默认double类型。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    Deerainy 2022-10-16 01:35

    我刚才试了一下,发现定义成double的时候就好了,但float的时候最后确是1,请问这是为什么呀

    回复
    浪客 回复 Deerainy 2022-10-16 01:51

    这牵扯到精度问题,浮点数里保存的是不是你看到的数本身,是一个近似值。。

    1
    回复
    Deerainy 回复 浪客 2022-10-16 08:20

    好的,谢谢你

    回复
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 11月26日
  • 已采纳回答 11月19日
  • 创建了问题 10月15日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部