今天在写Qt的时候遇到了一个bug:同样一个方程在PC机上算的结果是11,但在arm-Linux设备上算出来的结果是12,我自己用计算器按出来的结果也是12。
该段程序是这样的:
maxnumbar = qreal((ItemHeight - radian * 2) / height_rect); 其中 ItemHeight 、radian 、height_rect,这三个量的类型均是qreal,而最终结果的变量maxnumbar 的类型则是int。一开始百思不得其解,直到我将三个变量的值输出才发现了一个端倪 ItemHeight =342 ,radian = 13.68, height_rect = 26.22 怎么会恰巧有个像整型的数呢?于是我再往上翻 ItemHeight 的来源: ItemHeight = 5 * JdLScada.ScreenHeight/ 7; 其中,JdLScada.ScreenHeight 是一个整型数,算出的结果自然是个整型数,所以赋给ItemHeight 整型,但往下我现在就想不通了,就算ItemHeight 是一个整型数就按342去算,得出的结果也应该是12,怎么算都到不了11。 有大神可以解惑的吗? PS qreal的定义:
标签:Qt,ItemHeight,height,qreal,radian,整型 From: https://www.cnblogs.com/jarilar/p/17989477