【发布时间】:2019-07-08 23:58:17
【问题描述】:
我目前正在阅读“C 编程语言 - 第 2 版”。在第一章中,解释了浮点数与 int 的操作会产生 int。有这个程序:
#include <stdio.h>
int main()
{
float fahr, celsius;
int lower, upper, step;
lower = 0;
upper = 300;
step = 20;
fahr = lower;
while (fahr <= upper)
{
celsius = (5.0/9.0) * (fahr-32.0);
printf("%3.0f\t%6.1f\n", fahr, celsius);
fahr = fahr + step;
}
}
fahr = fahr + step 行执行时,fahr 不应该变成 int 吗?是否因为我被宣布为浮点数而保持浮点数?
【问题讨论】:
-
我想你一定是看错了。当你结合 float 和 int 时,int 被转换为 float,而不是相反。
-
this question 可能是相关的。
-
C 中的变量不能改变类型。
-
OT: about:
celsius = (5.0/9.0) * (fahr-32.0);变量 (celsius, fahr) 的类型为float,但文字 (5.0, 9.0, 32.0) 的类型为double更好的方法是声明通过将f附加到每个文字的末尾,将文字作为float类型,IEcelsius = (5.0f/9.0f) * (fahr-32.0f);