回复:300PLC有没有对数据四舍五入处理的功能命令?

youhm

  • 帖子

    4924
  • 精华

    81
  • 被关注

    51

论坛等级:至圣

注册时间:2008-06-28

普通 普通 如何晋级?

发布于 2011-11-14 21:07:29

8楼

RND 实际是5舍6入,如果你实在要4舍5入,可以事先加上0.1。
__________________________________________________
一直和大家一样认为RND就是四舍五入,看了楼主给出帮助的示例,觉得有些奇怪,于是就用PLCSIM做了测试,果不其然,只对1位小数的情况做了测试,匆忙下了上面的结论,过于草率,感谢楼下两位大侠的指正。

————————————————————————————
在其它编程语言里也遇到类似情况讨论,查看微软的MSDN,Round函数是四舍六入五留双(双即偶数,印证了A侠展示的内容,说明PLC里的RND函数是一样的原理)。

以下是来自百度百科的解释:
Round函数(银行家舍入)

  Round 函数即四舍六入五取偶。
  Round 函数在MSDN里的中文释义为四舍五入,这是翻译时的疏忽。
  在 VB, VBs cript, C#, J#, T-SQL 中 Round 函数都是采用 Banker's rounding(银行家舍入)算法,即四舍六入五取偶。事实上这也是 IEEE 规定的舍入标准。因此所有符合 IEEE 标准的语言都应该是采用这一算法的。
  Banker 舍入法是取最接近的偶数,这样就比四舍五入准确性高。例如,4.5运算后变为4,5.5运算后变为6。
  虽然“四舍五入”是我国最早提出的算法,值得我们自豪,但不能因此就认为它始终是先进的。毕竟它已经有近二千年历史了(大约一千七百多年前,天文学家杨伟就已明确提出了“四舍五入法”)。
  四舍五入算法逢五就要进位,带来的问题就是结果偏大,尤其是在大量的数据统计中。Banker 舍入则在统计概率上解决了这个问题。
http://baike.baidu.com/view/672815.htm
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54774条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。