猿问

float和double的用法区别 顺便帮我看看这两个代码。用double赋值后输出都是0.

#include <stdio.h>

main()

{

float x;

scanf("%f",&x);

x=(int)(x*100+0.5)/100.0;

printf("%0.3f",x);

}


#include <stdio.h>

main()

{

double x;

scanf("%f",&x);

x=(int)(x*100+0.5)/100.0;

printf("%0.3f",x);

}




慕仰5422924
浏览 1320回答 2
2回答

onemoo

scanf 中,float 对应的格式化指示符是 %f;double 对应的是 %lf。   所以你的 scanf 语句中的格式化指示符用错了。而在 printf 中,float 和 double 对应的都是 %f (当然你用 %lf 对应 double 也可以,但不是必须的)。

阿臣儿

double对应的输出格式是%lf哦,如果你用float对应的%f将会发生截断,我之前学c的时候也是这样,可以百度一下printf输出格式,里面内容很全的
随时随地看视频慕课网APP
我要回答