今天项目编程,在线监控调试的时候,遇到如下图所示情况:
图上前面的能流都导通了,而在我圈起来的那个地方。DEADD D2128 D1504 D2130这句代码,监控的时候,D2128为0,后面那个浮点型数据为1.17549e-38次方,不为零。一开始没看到38前面的-号,以为数值很大。实际上这个数值很小很小。纠结了好长时间,都没搞明白为啥这里不是0.最后百度了一下,发现1.17549e-38其实是float类型数据的最小值
float 最大值:3.40282e+38
float 最小值:1.17549e-38
double 最大值:1.79769e+308
double 最小值:2.22507e-308
一开始以为这个数据是因为错误导致,以为是哪里占用了这个D寄存器,导致了D寄存器使用重复,所以这里一直查找bug,看是不是这个D寄存器被不知道的地方占用了,Ctrl+F搜索了一圈没找到,然后换用了D寄存器地址,发现还是这样。。最后查出来float的最小值并不是0,也就是正好是上面的监控的值。
关注本站微信公众号,可以更方便的获得更多资源资料
燕骏工控博客[环宇工控博客]–www.yanjuntech.cn 专注于工业自动化领域,分享工控相关经验与教程,分享收集的百度云盘工控资料资源,记录个人生活读书感悟。期待与您相遇~~
转载请注明:燕骏博客 » 梯形图编程之float类型数据最小值不为0(诡异的数值1.17549e-38)
赞赏作者微信赞赏支付宝赞赏