楼主最近还看过
这个看你的实际应用了
32位的整数 20 跟 20.0浮点表示 怎么算精度呢?
如果说 32位整数,没有采用定点放大的话,20就是 20,精度就是 个位数字,体现不了 小数点。
如果20用浮点表示,32位 浮点,可以表示到 小数点后面很多位
从这个意义上讲 32位的浮点精度 肯定比 32的整数精度高。 但是20用浮点表示,可能最后并不是 绝对的 20,可能是 20.0000001之类的,从这个角度讲,好像整数跟实际值之间没有误差,而浮点就有误差,好像整数更精确。这里是举例子说明现象而已,不代表实际数据就是那么大。但是实际上 浮点和整数的应用环境和方法并不相同,不好说直接评价他们的精度问题。
浮点是用 基数+指数的方式表示的, 有点记不清楚 具体的公式了,浮点确实会存在一点误差,但是一般不会影响使用的。
广义上来说是的。
你看看32位有号二进制能表示的范围-2147483648~+2147483647。再看看32位浮点数,范围会大得多,+(-)1.1755×10^-38~+(-)3.4028×10^+38。可见,浮点数表示范围比32位整型大很多很多,但不管如何编码32位二进制寄存器就只能存那么些数,整形就是一个罗卜一个坑,最大的误差不会超过1。而浮点就不一样,当指数过大时,误差就很大了。
但是,但是哈,浮点数的尾数能够达到23位(二进制),对于一般使用来讲这个精度已经非常非常高了,误差会很小,几乎可以忽略不计。
而相对来说,32位整型无法表示小数,比如3/2=1,1和1.5的差距是多大,没有谁能忍受这个误差(或称错误),为了计算小数,我们不得不将2个数据分别×10(在没有浮点数功能的PLC中只能这么干)。如果需要0.001的精度呢?或更高的精度!这样就会很麻烦,转换起来自己都晕。
而浮点表示,根本不用考虑这个问题,反正那点误差对工程量来说不是什么问题。
综上述,平常使用浮点数精度比整型精度高。实际上来说,由于现在PLC的浮点运算功能非常强,一般的情况下,我都会把整型全部转为浮点数进行数学计数,反正过程中也没去考虑误差的情况,AD,DA,执行机构、、、、、所带来的误差不晓得比浮点数计数误差大多少倍,一般情况没必要考虑这个问题。由于转成浮点,给编程带来了诸多方便,至于增加的那点运算时间,一般来说也不是多大问题,反正我觉得现在PLC都还是挺快的。