首页
编程星球
啊哈磊的小伙伴
求助
交流
添柴
挑战
题库
院校合作
加入圈子
扫码关注啊哈磊
QQ群:703568346
@啊哈编程星球
暑期课程
金牌教练带你玩转编程!
扫码预约课程
未登录
我的添柴
退出账号
搜索
搜索
本版
文章
帖子
用户
啊哈磊_编程从这里起步
»
交流
›
互助分享
›
学习求助
›
怎么结果是8.299999
返回列表
发新帖
查看:
256
|
回复:
4
怎么结果是8.299999
[复制链接]
我的编程梦
我的编程梦
当前离线
积分
20
电梯直达
楼主
楼主
|
发表于 2020-5-12 22:47:37
|
只看该作者
|
倒序浏览
|
阅读模式
5
啊哈币
#include <stdio.h>
#include <stdlib.h>
int main()
{
float a,b,c;
a=5.2;
b=3.1;
c=a+b;
printf("%f",c);
system("pause");
return 0;
}
复制代码
我来回答
楼主新帖
怎么结果是8.299999
楼主热帖
怎么结果是8.299999
收藏
0
转播
分享
回复
举报
矿洞菠菜
矿洞菠菜
当前离线
积分
8
沙发
发表于 2020-5-13 13:23:12
|
只看该作者
你这个是小数精度问题,小数加法都会这样。
点评
嘟嘟编程
那可以提高精准度啊?!用double 代码我发下面啦
发表于 2020-5-13 13:42
回复
举报
嘟嘟编程
嘟嘟编程
当前离线
积分
207
板凳
发表于 2020-5-13 13:41:25
|
只看该作者
试试这个:
#include <stdio.h>
#include <stdlib.h>
int main()
{
double a,b,c; //double 比 float 更精准
a=5.2;
b=3.1;
c=a+b;
printf("%.1f\n",c); //%.1f表示保留1位小数,格式为%.需要保留的位数f
//此处用来避免出现输出8.300000的情况
system("pause");
return 0;
}
回复
举报
Jesse1
Jesse1
当前离线
积分
665
地板
发表于 2020-5-14 21:06:22
|
只看该作者
关于上述问题,建议你将float的值乘以100000先存到一个long long的类型里[长整形],然后计算,再把结果除以100000.0[记住一定要有(点0),不然就被取整了],试试?
若成功,请设置最优答案
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
广播台
特别关注
快速回复
返回顶部
返回列表