鱼C论坛

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

[已解决]关于printf 怎么计算的问题

[复制链接]
发表于 2018-3-24 20:56:36 | 显示全部楼层 |阅读模式

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

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

x
不知道那里有问题输出的结果是0;
贴上我的源码;

#include <stdio.h>
int main(void)
{
        double a;
        printf("请输入杯数:");
        scanf("%f",&a);
        printf("\n品脱数是:%f,盎司数是:%f,大汤勺数:%f,茶勺数:%f",a/2,a*8,a*8*2,a*8*2*3);
        return 0;
}
最佳答案
2018-3-24 22:27:33
青骆 发表于 2018-3-24 22:09
为什么不能%f  超出范围的话我用很小的数字试了也不行, 我就比较想知道原理是什么

不是超出范围的问题,如果你是float你可以使用  lf,但是使用double,你就只能使用  lf  而不能使用 %f

在用于输出时:
float类型可以使用%lf格式,但不会有任何好处。
double类型如果使用了%f格式可能会导致输出错误。

在用于输入时:
double 类型使用了%f格式,会导致输入值错误。
float类型使用double类型不仅会导致输入错误,还可能引起程序崩溃。

至于原理这个我也不太清楚,这个就跟说为什么是%f,而不是%h,%y
这个你要是愿意研究你可以看看C语言内置的函数什么的是怎么写的,

一般你记住就好了。
问题图片1.png
问题图片2.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-24 21:21:11 | 显示全部楼层
#include <stdio.h>
int main(void)
{
        double a;
        printf("请输入杯数:");
        scanf("%lf",&a);
        printf("\n品脱数是:%f,盎司数是:%f,大汤勺数:%f,茶勺数:%f",a/2,a*8,a*8*2,a*8*2*3);
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-24 21:24:08 | 显示全部楼层
scanf("%f",&a);把这个改为scanf("%lf",&a);

就好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-24 22:09:40 | 显示全部楼层
Zmynx_2017 发表于 2018-3-24 21:24
scanf("%f",&a);把这个改为scanf("%lf",&a);

就好了

为什么不能%f  超出范围的话我用很小的数字试了也不行, 我就比较想知道原理是什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-24 22:27:33 | 显示全部楼层    本楼为最佳答案   
青骆 发表于 2018-3-24 22:09
为什么不能%f  超出范围的话我用很小的数字试了也不行, 我就比较想知道原理是什么

不是超出范围的问题,如果你是float你可以使用  lf,但是使用double,你就只能使用  lf  而不能使用 %f

在用于输出时:
float类型可以使用%lf格式,但不会有任何好处。
double类型如果使用了%f格式可能会导致输出错误。

在用于输入时:
double 类型使用了%f格式,会导致输入值错误。
float类型使用double类型不仅会导致输入错误,还可能引起程序崩溃。

至于原理这个我也不太清楚,这个就跟说为什么是%f,而不是%h,%y
这个你要是愿意研究你可以看看C语言内置的函数什么的是怎么写的,

一般你记住就好了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-24 22:34:32 | 显示全部楼层
http://bbs.fishc.com/thread-67265-1-1.html

请参考取值范围这个帖子。

double 是占用8个字节,
float 占用4个字节,
您这样用,放不下啊, 所以再小的数也会错误。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-10-1 17:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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