鱼C论坛

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

c语言 关于%d %f %lf 的问题

[复制链接]
发表于 2012-4-26 22:49:09 | 显示全部楼层 |阅读模式

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

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

x
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("d\t\tf\t\tlf\n");
printf("%d\t\t",1*3/3);
printf("%f\t\t",1*3/3);    为什么输出0?
printf("%lf\n\n",1*3/3);


printf("%d\t\t",1.0*3/3);  为什么输出0?
printf("%f\t\t",1.0*3/3);
printf("%lf\n\n",1.0*3/3);


double a=1*3/3;
float b=1*3/3;
int c=1*3/3;

printf("%d\t\t,%d\t\t,%d\n",a,b,c);
printf("%f\t,%f\t,%f\n",a,b,c);
printf("%lf\t,%lf\t,%lf\n\n",a,b,c);

  
double  A = 1.0*3/3;
float B = 1.0*3/3;
int C = 1.0*3/3;
  printf("%d\t\t,%d\t\t,%d\n",A,B,C);
  printf("%f\t,%f\t,%f\n",A,B,C);
  printf("%lf\t,%lf\t,%lf\n\n\n",A,B,C);



return 0;
}d               f               lf
1               0.000000                0.000000  为什么输出0?

0  为什么输出0?              1.000000                1.000000
0               ,1072693248             ,0               乱码?
1.000000        ,1.000000       ,0.000000
1.000000        ,1.000000       ,0.000000
0               ,1072693248             ,0
1.000000        ,1.000000       ,0.000000
1.000000        ,1.000000       ,0.000000

请按任意键继续. . .

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-4-27 20:54:48 | 显示全部楼层
沙发稳坐。。。

看得很纠结。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-4-27 21:04:36 | 显示全部楼层
第一个为什么输出0:因为1*3/3 中全是整型,而你要输出的是浮点型,所以只能输出0.000000,改成1.0*3/3结果就不同了。

第二个为什么输出0:1.0 是识别成浮点型or双精度,(double型),而你要输出的是整型,只能输出个0了。改成1*3/3正常。

第一个乱码:你已经定义了b是浮点型,输出却是整型,所以编译器会输出一个乱码。

改成%lf就正常了

第二个乱码也是一样。


我的回答是这样了。
回答得不怎么样,我也是才学的。
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-4-27 22:33:51 | 显示全部楼层

  我是想知道内部原理。不过谢谢你的回复
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-4-28 09:12:45 | 显示全部楼层
你这直接是int/int类型的,你可以在数值后面显示的指明数据类型。比如浮点数,可以写成8f,好象是这样
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-4-28 12:44:18 | 显示全部楼层
C/C++技术交流群:149582523
欢迎c,c++的朋友们加入!期待共同学习进步!
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-2-14 00:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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