恭喜,你发布的帖子
发布于 2017-09-18 08:22:10
11楼
这件事情从头到尾想象一下,应该不可能出现大数吃小数的事件。
如果光从浮点数和双整数差异看计算,的确会。4亿亿加40亿等于4亿亿。小数吃掉了。
但是你想象一下,作为一个流量计,累计数只能是从最低位开始累计,尽管它使用浮点数,像是可以达成4亿亿的结果。但是Y斑你应该有印象,有个网友发帖说过,为何浮点数累计到一个多少(我忘了)的数之后就不能再累加了。这种情况致使流量计的累计流量不可能达到4亿亿这样的尺度。
如果流量计从1单位开始累计,32位的寄存器装载双整数最大是42亿。而42亿已经是一个10位数了。32位的浮点已经无法装载这样的一个10位有效数字的整数。32位浮点数只能保存7位有效数字。所以这个浮点数达到7位有效数字的时候就再也不能增加1了。因为产生了一个8位数,只可惜浮点只能舍弃个位,指数值增加1。此时再也没有个位数参与运算。但是此时你仍可以加10。
所以不管流量计是整形还是浮点装载,都可以在plc中以双整数运算这个量。
话说回来,除非流量计不是使用plc这样的32位浮点格式装载。
Y斑,你意下如何?
请填写推广理由:
分享
只看
楼主