【发布时间】:2017-06-29 06:08:48
【问题描述】:
我想用 QDoubleSpinbox 修改定点 16.16 中的一些数据。
问题是,每当我将定点转换为双精度时,都会出现不可避免的舍入问题。
double = fixed / (double)65536
以0.2 为例,在定点上这是0x00003333,但是当我将它放入QDoubleSpinBox 时,它显示 0.19999694824188。
但只要我触摸旋转框,它就会四舍五入到0.2。
如何让 QDoubleSpinBox 在 setValue 上四舍五入?
QDoubleSpinbox 的行为符合设计,但我的 QAbstractTableModel 不是。
当微调框的控件不可见时,表格会隐式使用 QString 来显示 QVariant 中给定的值。
在qstring中以固定精度setnum()实现paint()函数后,效果很好!
【问题讨论】:
-
查看小数属性。 spinbox 基于此值进行四舍五入:doc.qt.io/qt-5/qdoublespinbox.html#decimals-prop
标签: qt floating-point fixed-point