我们公司有款PLC产品使用STM32F103ZET6芯片,Keil 3编译器。做浮点数加法运算。
初始值为0.0,每个扫描周期自加10次,每次加1.0。最后加到1.677722E+007即停止了。
我们公司还有款PLC产品,使用三星2410芯片,ADS 1.2编译器,也是加到1.677722E+007即停止。
而同样的PLC程序,西门子PLC的结果是3.355443E+007.
如果每次自加0.1,则我们的2款PLC和西门子PLC计算结果一样,加到2097152.0停止。
感觉是每次自加1.0,作为浮点数来说,并不是1.0000000,有可能是1.000011这样的数字(打个比喻)。可能运算过程中丢失了精度导致计算结果和西门子PLC不一样。
请问:是浮点运算库的问题吗?哪里有下载?
|