故事作者:Automann

最近创作

看看TA的故事

浮点数四舍五入指令的深入探讨

已锁定

Automann

  • 帖子

    6168
  • 精华

    138
  • 被关注

    308

论坛等级:至圣

注册时间:2004-12-23

普通 普通 如何晋级?

浮点数四舍五入指令的深入探讨

1615

9

2011-11-15 09:24:53

        浮点数又称为实数(Real),在STEP  7中,用小数表示浮点数。
        S7-300/400有4条指令将浮点数转换为双整数:
        ROUND将浮点数转换为四舍五入的双整数,用得最多;
        CEIL将浮点数转换为大于等于它的最小双整数,很少使用;
        FLOOR将浮点数转换为小于等于它的最大双整数,很少使用;
        TRUNC将浮点数转换为截位取整的双整数,用得较少。
        我在网上看到有人说S7-300/400的“ROUND指令实际是5舍6入,如果你实在要4舍5入,可以事先加上0.1”。
        老实说我过去还没有注意过这条指令的细节。为此首先查阅了该指令的在线帮助:
        “ROUND  (取整为长整型)将参数IN的内容以浮点数读取,并将其转换为长整型(32位)。结果为最接近的整数(取整到最接近值)。如果浮点数介于两个整数之间,则返回偶数。结果由参数OUT输出”。
        我们俗称“取整到最接近值”为四舍五入。下面是仿真实验的结果,看来还是四舍五入,不存在5舍6入的问题。
        输入为2.49999,输出为2(四舍)。
        输入为2.50001,输出为3(五入)。
        浮点数刚好在两个整数之间时返回偶数,这与我们的习惯不同,可能是五舍,也  可能是五入。仿真实验结果如下:
        输入为1.5(1和2之间),输出为2(五入)。
        输入为2.5(2和3之间),输出为2(五舍)。
        西门子的官方文件(包括软件中的帮助文件)是我们学习的依据,要深刻理解还需要我们动手做实验。
        需要注意的是浮点数最多允许输入6位有效数字。
浮点数四舍五入指令的深入探讨 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

网友专栏

共有3364条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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