社区
C语言
帖子详情
该程序的计算结果为什么不对?
lbyoo
2005-01-24 02:43:46
int main()
{
float a = 256010224;
float b = 3902;
a = a +b;
printf("%.0f\n",a);
}
输出:256014128
...全文
111
11
打赏
收藏
该程序的计算结果为什么不对?
int main() { float a = 256010224; float b = 3902; a = a +b; printf("%.0f\n",a); } 输出:256014128
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
master5470
2005-01-24
打赏
举报
回复
编译环境vc++6.0
的结果是256014126
楼主再好好试试
lbyoo
2005-01-24
打赏
举报
回复
改为double就可以了,float还是少用吧
winstonch
2005-01-24
打赏
举报
回复
还是没明白你要打印出来什么
lbyoo
2005-01-24
打赏
举报
回复
但是如果打印的话,怎么写呢,我用printf打印时里面的%不知道怎么写才好,对了,我用的机器是HP-UX zw2 B.11.23 U ia64
winstonch
2005-01-24
打赏
举报
回复
printf("%.0f\n",a);
这里.0是小数点后0位的意思
kobefly
2005-01-24
打赏
举报
回复
其实
double就应该可以了啊
long double在32位机上
也是8位的吧
daylove
2005-01-24
打赏
举报
回复
更机器所能表示的精度有关。
你换个类型看看:
long double
winstonch
2005-01-24
打赏
举报
回复
你想要什么结果?
kobefly
2005-01-24
打赏
举报
回复
浮点数的表示方法是根据IEEE754标准的
是近似表达
自然不可能精确的拉
跟整数的编码方式不同
数值越大, 误差就越大,这是很正常的
suyouxin
2005-01-24
打赏
举报
回复
晕,我的机器怎么得到的是
256014126
kobefly
2005-01-24
打赏
举报
回复
浮点数都是近似值
是根据IEEE754编码的
整数的存储是精确值
但浮点数是不可能精确的拉
10分钟实现微信小
程序
支付功能
核心代码就下面这些 一,创建一个云开发小
程序
关于如何创建云开发小
程序
,这里我就不再做具体讲解。不知道怎么创建云开发小
程序
的同学,可以去翻看我之前的文章,或者看下我录制的视频:...
为什么每次用计算机算数都
不对
,什么?计算机也会算错数?
人们通常不会怀疑计算机在数学计算上的结果,毕竟,如果连数都算
不对
,那还叫什么“计算机”啦?其实,有个简单的题目就能让计算机算错,不信我们试试看。如果你用Chrome浏览器的话,按下F12(在Mac上要按Command+...
计算机
程序
的思维逻辑 (5) - 小数计算为什么会出错?
但实际上,即使在一些非常基本的小数运算中,计算的结果也是不精确的。 比如: float f = 0.1f*0.1f; System.out.println(f); 这个结果看上去,不言而喻,应该是0.01,但实际上,屏幕输出却是0.010000001
【C语言初阶】 为什么我的两个整数加起来结果
不对
?原来是你,整型提升~
上一次我们说过了浮点数在内存中的存储规则和形式。我们知道了C语言中,所有...有符号整数的二进制形式,首位为符号位(0表示正数,1表示负数)。 正整数的三种二进制形式关系为: 原码 == 反码 == 补码 例: 10:原
JAVA笔记(五)-小数计算为什么会出错?
但实际上,即使在一些非常基本的小数运算中,计算的结果也是不精确的。 比如: float f = 0.1f*0.1f; System.out.println(f); 这个结果看上去,不言而喻,应该是0.01,但实际上,屏幕输出却是0.010000001,后面多了...
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章