鱼C论坛

 找回密码
 立即注册
查看: 1332|回复: 5

[已解决]C语言中float算术运算问题(初学者)

[复制链接]
发表于 2020-11-6 10:15:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Cathy-Chen258 于 2020-11-6 10:17 编辑
#include <stdio.h>
int main()
{
        float f,c;
        f=90.0;
        c=(5.0/9)*(f-32);
        printf("f=%f\n c=%f\n",f,c);
}


1.为什么“c=(5.0/9)*(f-32)“中要打”5.0“?
2.打”5“运算c=0?
3.其他的“9”、“32”不用精确度?
最佳答案
2020-11-6 10:25:08
这三个其实都是同一个问题
回答1.      写成 5.0 表示要进行 浮点数的除法,结果是浮点数
回答2.      在C语言中,整数除法的结果只能是整数,所以 5/9的结果是0
回答3.      9、32 不用写成小数的形式是因为,如果一个表达式里面有小数的话,那么,整个表达式的结果就是小数了(术语叫做隐式类型提升)。前面已经5.0 是小数了,所以这里可以不写成9.0、32.0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-6 10:25:08 | 显示全部楼层    本楼为最佳答案   
这三个其实都是同一个问题
回答1.      写成 5.0 表示要进行 浮点数的除法,结果是浮点数
回答2.      在C语言中,整数除法的结果只能是整数,所以 5/9的结果是0
回答3.      9、32 不用写成小数的形式是因为,如果一个表达式里面有小数的话,那么,整个表达式的结果就是小数了(术语叫做隐式类型提升)。前面已经5.0 是小数了,所以这里可以不写成9.0、32.0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-11-6 10:31:40 | 显示全部楼层
shooan 发表于 2020-11-6 10:25
这三个其实都是同一个问题
回答1.      写成 5.0 表示要进行 浮点数的除法,结果是浮点数
回答2.      在 ...

ok谢谢你详细解答我可以理解了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-11-6 11:05:27 | 显示全部楼层
shooan 发表于 2020-11-6 10:25
这三个其实都是同一个问题
回答1.      写成 5.0 表示要进行 浮点数的除法,结果是浮点数
回答2.      在 ...

再问一下如果用“9/5”运算c=1是吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-6 12:16:59 | 显示全部楼层
Cathy-Chen258 发表于 2020-11-6 11:05
再问一下如果用“9/5”运算c=1是吗?

是的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-11-7 16:34:43 | 显示全部楼层

好的谢谢你^-^
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 17:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表