|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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: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 ;
- }
复制代码
|
|