1/3 与 3/9 为什么结果会不同??

kanongzhang 2009-07-04 11:13:42
这是我在做USACO时遇到的问题。我用vc6.0是1/3与1/9结果是不相同的,但是提交后他的编译器就认为不同 ,我很困惑 ??那位高人能给我讲一下为什么吗? 顺便给我讲一下计算机对除法是这样处理的??感激不尽!!
...全文
190 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2009-07-05
  • 打赏
  • 举报
回复
精度不同
chang_an_liu 2009-07-05
  • 打赏
  • 举报
回复
一般是不会相同的,看他们的计算结果是没有意义的,常用的处理手法是比较两者的误差,小于你要求的范围,就表示相同的了
Fleeboy 2009-07-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 kanongzlg 的回复:]
对了 , 忘了告诉大家1 , 3 , 9被我强制转换为了double型的 ,那应该怎样处理 , 才能使它们的结果一样呢
[/Quote]
那基本上是不会相同了
kanongzhang 2009-07-04
  • 打赏
  • 举报
回复
我做的是第二章的第一节的第二道题 , 哎 , 我经常遇到他的编译结果与我的不一样呀!!都不知道这样解决??
大前置 2009-07-04
  • 打赏
  • 举报
回复
printf("%lf, %lf\n", 1/3.00, 1/9.00);
liao05050075 2009-07-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 kanongzlg 的回复:]
对了 , 忘了告诉大家1 , 3 , 9被我强制转换为了double型的 ,那应该怎样处理 , 才能使它们的结果一样呢
[/Quote]

没办法完全一样。除非你用高精度小数运算。

话说,你做的是usaco哪题?通常这些题目是不会在这些地方卡你的。是不是你的程序没写对?
kanongzhang 2009-07-04
  • 打赏
  • 举报
回复
对了 , 忘了告诉大家1 , 3 , 9被我强制转换为了double型的 ,那应该怎样处理 , 才能使它们的结果一样呢
  • 打赏
  • 举报
回复
[Quote=引用楼主 kanongzlg 的帖子:]
这是我在做USACO时遇到的问题。我用vc6.0是1/3与1/9结果是不相同的,但是提交后他的编译器就认为不同 ,我很困惑 ??那位高人能给我讲一下为什么吗? 顺便给我讲一下计算机对除法是这样处理的??感激不尽!!
[/Quote]

整型 的话,都是0
liao05050075 2009-07-04
  • 打赏
  • 举报
回复
1/3和3/9,整数除法不都得0吗?

如果你说的是1.0/3和3.0/9结果则可能会有一点点误差,那是因为浮点数在内存中的表示是不精确的。
具体你可以去搜索一下浮点数的表示方法

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧