回复:一个神秘现象后面的秘密──RND指令执行出错的原因分析

Automann

  • 帖子

    6168
  • 精华

    138
  • 被关注

    308

论坛等级:至圣

注册时间:2004-12-23

普通 普通 如何晋级?

发布于 2014-05-09 13:02:38

19楼

quote:[b]以下是引用ktissot在2014-05-09 11:15:52的发言输入2147483647.0
accu1中的内容是4f000000。
根据浮点数的计算规则:4f000000对应的数是2147483648.0。和我们设定的不一致。
这个问题就是计算机处理浮点数精度时候产生的。
再比如:
从2147483584.0到2147483647.0,accu1中的内容都是4f000000
输入2147483583.0 accu1中的内容是4effffff,对应的dint是2147483520。
换言之:300系列plc,32位单精度浮点数,无法精确表达从2147483583.0到2147483647.0之间的每一个数。
这就像看一片湖水一样,你可以看到水和浪花,但是绝对看不到水分子。

“无法精确表达”最多就是转换有误差,而2147483584.0到2147483647.0不是精确表达的问题,而是不能转换的问题。
追求完美
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54706条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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