洛阳网站搭建,淮南定制网站建设公司,腾讯企点下载安装,郑州网站制作工具提要
定义的qreal类型的变量在做减法和乘法时所得的值不正确。
示例
做减法运算
//参数定义
qreal m_lastScale;//上一次缩放比
qreal m_scale;//保存缩放比m_scale m_lastScale - 0.05;//变为减0.05后计算的值不对下面的方法可以解决精度丢失导致的计算所得的值不正确的问…提要
定义的qreal类型的变量在做减法和乘法时所得的值不正确。
示例
做减法运算
//参数定义
qreal m_lastScale;//上一次缩放比
qreal m_scale;//保存缩放比m_scale m_lastScale - 0.05;//变为减0.05后计算的值不对下面的方法可以解决精度丢失导致的计算所得的值不正确的问题 m_scale m_lastScale - 0.05;//变为减0.05后计算的值不对//将m_scale四舍五入取2位解决精度丢失2021-3-18QString str QString::asprintf(%.2f,m_scale);m_scale str.toDouble();做乘法运算时所得的值不正确
int ratio m_scale * 100;下面的这种做法可以得到正确值。
qreal ratio m_scale * 100;
//将m_scale四舍五入取2位解决精度丢失2021-3-18
QString str QString::asprintf(%.2f,ratio);
ratio str.toDouble();
QString strScale QString::number(ratio) %;总结
以上做法中实际上是将数值转换为保留特定位的字符串然后再将字符串转换为特定的数值。