C语言中float算术运算问题(初学者)
本帖最后由 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”不用精确度? 这三个其实都是同一个问题
回答1. 写成 5.0 表示要进行 浮点数的除法,结果是浮点数
回答2. 在C语言中,整数除法的结果只能是整数,所以 5/9的结果是0
回答3. 9、32 不用写成小数的形式是因为,如果一个表达式里面有小数的话,那么,整个表达式的结果就是小数了(术语叫做隐式类型提升)。前面已经5.0 是小数了,所以这里可以不写成9.0、32.0 shooan 发表于 2020-11-6 10:25
这三个其实都是同一个问题
回答1. 写成 5.0 表示要进行 浮点数的除法,结果是浮点数
回答2. 在 ...
ok谢谢你详细解答我可以理解了{:5_110:}{:5_109:} shooan 发表于 2020-11-6 10:25
这三个其实都是同一个问题
回答1. 写成 5.0 表示要进行 浮点数的除法,结果是浮点数
回答2. 在 ...
再问一下如果用“9/5”运算c=1是吗? Cathy-Chen258 发表于 2020-11-6 11:05
再问一下如果用“9/5”运算c=1是吗?
是的 shooan 发表于 2020-11-6 12:16
是的
好的谢谢你^-^
页:
[1]