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不是精确表达的问题,而是不能转换的问题。