1.2 * 1.5 却不等于 1.8,我错在哪里呢??
#include <stdio.h>#include <stdlib.h>
int main()
{
float a,b,c;
a = 1.2;
b = 1.5;
c = a * b;
printf("%d", c);
return 0;
}
可以编译,但结果是负数,为什么呢? 本帖最后由 Twilight6 于 2020-7-23 10:44 编辑
因为 %d 是格式化整型占位符,而你开始时候是声明浮点型的值
因为 C 语言中 各种变量的储存方式不同,所以得出的值不同
这里 %.2f 是保留2位有效小数哈
#include <stdio.h>
#include <stdlib.h>
int main()
{
float a,b,c;
a = 1.2;
b = 1.5;
c = a * b;
printf("%.2f", c);
return 0;
} 定义单精度,用整形?
float a,b,c;
printf("%d", c);
改
printf("%f", c); 本帖最后由 FishC--Student 于 2020-7-23 11:28 编辑
你用整型占位符给浮点型占位,输出会像下面一样是一串乱码:
https://s1.ax1x.com/2020/07/23/Uq4EnA.png
将代码改成下面这样就可以了:
https://s1.ax1x.com/2020/07/23/Uqo4vF.png
要输出1.8,要将代码改成下面这样:
https://s1.ax1x.com/2020/07/23/UqokX4.png
其中“printf("%.1f", c);”是保留1位小数。 谢谢老铁!!是%d %f的分别
页:
[1]