今天在写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的定义: