鱼C论坛

 找回密码
 立即注册
查看: 646|回复: 2

[已解决]精度的问题(欢迎小伙伴们来发表意见)

[复制链接]
发表于 2021-8-2 10:30:18 | 显示全部楼层 |阅读模式

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

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

x
我的代码是这样的:
#include <stdio.h>
int main()
{
        float height;
        long double output;

        scanf("%f",&height);
        output = height * 2.54;
        printf("Your height is %lf",output);
       
        return 0 ;
}
键盘输入的是:170.2

输出结果是:
Your height is -461456749483175900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000

正确答案是:
#include <stdio.h>
int main()
{
        float height;
       
        scanf("%f",&height);
        printf("Your height is %lf",height * 2.54);
       
        return 0;
}
键盘输入的是:170.2

输出结果是:Your height is 432.307992

我一直很懵,我只不过是把答案的一步完成分成了好几步,就错了?有人说是精度的问题,但是我试了一下也没有错呀。

大家各抒己见,我会一 一尝试一下(现在想不出为什么错了)


最后,那个数据用计算器算出来的是432.308(如果可能的话,帮把这个原因说一说)
最佳答案
2021-8-2 10:37:59
本帖最后由 大马强 于 2021-8-2 10:44 编辑

你的 long double output; 改成 float output,然后输出改改 printf("Your height is %.3lf",output);
这样输出就一样了
计算机精度问题,这点误差能接受的
#include <stdio.h>
int main()
{
        float height;
        double output;

        scanf("%f",&height);
        output = height * 2.54;
        printf("Your height is %.3lf",output);
        
        return 0 ;
}

                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-2 10:36:29 | 显示全部楼层
跟精度没关系呀,把long去掉
#include <stdio.h>
int main()
{
        float height;
        double output;

        scanf("%f",&height);
        output = height * 2.54;
        printf("Your height is %lf",output);
        
        return 0 ;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-8-2 10:37:59 | 显示全部楼层    本楼为最佳答案   
本帖最后由 大马强 于 2021-8-2 10:44 编辑

你的 long double output; 改成 float output,然后输出改改 printf("Your height is %.3lf",output);
这样输出就一样了
计算机精度问题,这点误差能接受的
#include <stdio.h>
int main()
{
        float height;
        double output;

        scanf("%f",&height);
        output = height * 2.54;
        printf("Your height is %.3lf",output);
        
        return 0 ;
}

                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 22:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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