Image
Image

fushaobing

+ 关注

粉丝 1     |     主题 3     |     回帖 106

一个四舍五入的问题,大家帮忙看看
2011-12-14 14:08
  • 侃单片机论坛
  • 88
  • 14211
  to 72楼: 谢谢你的耐心和指教! 我验算了你的公式,全部能得出正确结果。可否请教一下你的思路?为什么你 ...  
  总结(结贴) 题目:求“result=60-x*10/y”的值,要求四舍五入。所有变量都为长整型。(不可以使用浮点运 ...  
  急火攻心了? 此时此刻,你做人的水准和做事的水准我已经知道了。 本来,热爱技术的人在一起讨论技术问 ...  
  to ZALIN: 你的公式是正确的! 我已经用穷举的方法试过了。我需要的约两万种情况全部能得出正确结果。 谢谢 ...  
  to ZALIN: 你的公式是准确的! 我已经用穷举的方法试过了,我需要的约两万组数据全部能得出准确结果。 谢谢 ...  
  我的想法很简单,把x*10/y的小数部分为“0.5000000000(后面全部是0)”的情况拿出来特别对待。 ...  
  我是这样解决的。(已经用穷举的方法验证过了) if ( (((x*100)%y)==0) && ((((x*100)/y) ...  
  谢谢大家的关注。 有朋友说这个问题必须使用浮点数才能解决。未免有点牵强。 我们总不能为了一个四舍五入 ...  
  to 不亦心: 你看懂“ZALIN”的推导过程了吗?哈哈,看来我要努力了。  
  to ZALIN: 我的题目是从一个具体的问题抽象出来的,如果用穷举,是不需要从0x01~0xffffffff全部试完的。我 ...  
  to 43楼: “比如说34.49999999仍然避免不了被判读为34的结果。” 如果result=34.49999999,那么"34"就是我 ...  
  2楼的方法大多数情况下不会出错,但在某些情况下会出错(比如x=23,y=9)。 我的第一反应就是使用2楼的方 ...  
  result=60-x*10/y 我觉得这个四舍五入的问题之所以特殊,根本原因在于一个未知的"x*10/y"处于减数的位置。 ...  
  to ZALIN: 谢谢你的解释。 我会用穷举的方法验证你在“7楼”给出的公式。但我的水平有限,需要一点时间。 ...  
  to yewuyi: 你没有看懂我的要求,解决不了问题,就不要说什么“伪命题”了? 我后面说过了,“60-23*10/9=3 ...  
  to 26楼: 必须严格使用四舍五入。不能使用浮点数(有些MCU不支持浮点数运算,或者考虑到速度、程序空间、 ...  
  to 23楼: 我要求的就是整型。 你的计算看上去很复杂,我不是很明白。写程序时具体如何操作呢? 另外,你在 ...  
  “比如x=23,y=9. 60-23*10/9=34.44444444444444,四舍五入后的结果是34.” 不好意思,可能是我表达不够清楚 ...  
  谢谢大家的回复。 我补充一下参数的类型。如下: unsigned long int result; unsigned long int x; unsign ...  
  to yewuyi: 谢谢你关注这个帖子。 我发这个帖子是想和大家讨论技术问题。请不要再用“见鬼了”,“LZ脑子犯 ...  
2
3
近期访客