关于C中 double 和 float问题
学C中第8P 的课后作业, 我的代码如下:#include <stdio.h>
#include <math.h>
int main()
{
double F, C;
printf("请输入华氏度:");
scanf("%f", &F);
C = ( F - 32 ) * 5 / 9;
printf("转换为摄氏度是:%.2f", C);
return 0;
}
好像与标答就是定义的时候用的double, 标答用的float 为什么答案会是负数啊,我改成unsigned double也不行。。。。
求助{:10_266:}{:10_266:}{:10_266:} double对应的scanf中用 %lf float定义一个变量 占4个字节double定义一个变量 占8个字节 (16位的操作系统除外)
用scanf键入的时候
f占4个字节,lf占8个字节(注意是字母l不是数字1,有些粗心的爱犯这些小错误)
,所以float定义变量 用%f double 定义变量 用%lf,
如果double定义的变量 用%f 的话 就会产生溢出 也就会形成负数啦。
若定义的是long double 那么就占16个字节 long double k的话用scanf 键入就用 %llf。
不知up主明白没{:10_257:} 西瓜小刚 发表于 2018-10-24 10:12
float定义一个变量 占4个字节double定义一个变量 占8个字节 (16位的操作系统除外)
用scanf键入的时候
...
比心小哥哥! 那这些都需要死记嘛。。还是因为现在码的代码量不够,所以没什么印象? wlkent 发表于 2018-10-24 17:58
比心小哥哥! 那这些都需要死记嘛。。还是因为现在码的代码量不够,所以没什么印象?
有些事,写着写着就会了{:5_109:}
页:
[1]