鱼C论坛

 找回密码
 立即注册
查看: 550|回复: 7

[已解决]double和float 适用性问题求大佬给个解释

[复制链接]
发表于 2020-6-30 16:34:08 | 显示全部楼层 |阅读模式

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

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

x
  1. #include<stdio.h>
  2. int main(){
  3.          
  4.         double x,y;//为啥用double和float输出结果就不同呢。
  5.         printf("请输入华氏度:");
  6.         scanf("%f",&x);
  7.         y=(x-32.0)*5.0/9.0;
  8.         printf("转换成摄氏度是:%.2f\n",y);
  9.         return 0;
  10. }
复制代码





实在弄不清数到底问题出在哪里 就解释呢。
最佳答案
2020-6-30 16:41:03
因为 double 类型输入时候要用 %lf 而不是 %f

  1. #include<stdio.h>
  2. int main() {

  3.     double x, y;//为啥用double和float输出结果就不同呢。
  4.     printf("请输入华氏度:");
  5.     scanf("%lf", &x);
  6.     y = (x - 32.0) * 5.0 / 9.0;
  7.     printf("转换成摄氏度是:%.2f\n", y);
  8.     return 0;
  9. }
复制代码
123.png
456.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-30 16:39:40 | 显示全部楼层
改成这样:
  1. #include<stdio.h>
  2. int main(){
  3.          
  4.         double x,y;//为啥用double和float输出结果就不同呢。
  5.         printf("请输入华氏度:");
  6.         scanf("%lf",&x);
  7.         y=(x-32.0)*5.0/9.0;
  8.         printf("转换成摄氏度是:%.2f\n",y);
  9.         return 0;
  10. }
复制代码

原因是scanf的输入格式不对,应该是lf,不是f.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-30 16:41:03 | 显示全部楼层    本楼为最佳答案   
因为 double 类型输入时候要用 %lf 而不是 %f

  1. #include<stdio.h>
  2. int main() {

  3.     double x, y;//为啥用double和float输出结果就不同呢。
  4.     printf("请输入华氏度:");
  5.     scanf("%lf", &x);
  6.     y = (x - 32.0) * 5.0 / 9.0;
  7.     printf("转换成摄氏度是:%.2f\n", y);
  8.     return 0;
  9. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-30 16:52:05 | 显示全部楼层
qiuyouzhi 发表于 2020-6-30 16:39
改成这样:

原因是scanf的输入格式不对,应该是lf,不是f.

加  l  的意思不是是 按照long或者unsined long类型?那怎么区分啥时该加  l或者加ll ,难道只要这个数足够大么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-30 17:09:55 | 显示全部楼层
轻轻草原 发表于 2020-6-30 16:52
加  l  的意思不是是 按照long或者unsined long类型?那怎么区分啥时该加  l或者加ll ,难道只要这个数足 ...




  你最佳给别人 然后去问另一个人 这样好意思吗?晕....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-30 17:10:16 | 显示全部楼层
轻轻草原 发表于 2020-6-30 16:52
加  l  的意思不是是 按照long或者unsined long类型?那怎么区分啥时该加  l或者加ll ,难道只要这个数足 ...

不是。%f 是 float,%lf 是 double,%Lf 是 long double
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-3 13:26:13 | 显示全部楼层
Twilight6 发表于 2020-6-30 17:09
你最佳给别人 然后去问另一个人 这样好意思吗?晕....

注意力不集中 搞错了,尴尬。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-3 13:26:45 | 显示全部楼层
轻轻草原 发表于 2020-6-30 16:52
加  l  的意思不是是 按照long或者unsined long类型?那怎么区分啥时该加  l或者加ll ,难道只要这个数足 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 20:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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