qt中处理精度丢失
提要
定義的qreal類型的變量在做減法和乘法時(shí)所得的值不正確。
示例
做減法運(yùn)算
//參數(shù)定義 qreal m_lastScale;//上一次縮放比 qreal m_scale;//保存縮放比m_scale = m_lastScale - 0.05;//變?yōu)闇p0.05后計(jì)算的值不對(duì)下面的方法可以解決精度丟失導(dǎo)致的計(jì)算所得的值不正確的問題
m_scale = m_lastScale - 0.05;//變?yōu)闇p0.05后計(jì)算的值不對(duì)//將m_scale四舍五入取2位解決精度丟失2021-3-18QString str = QString::asprintf("%.2f",m_scale);m_scale = str.toDouble();做乘法運(yùn)算時(shí)所得的值不正確
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) + "%";總結(jié)
以上做法中實(shí)際上是將數(shù)值轉(zhuǎn)換為保留特定位的字符串,然后再將字符串轉(zhuǎn)換為特定的數(shù)值。
總結(jié)
- 上一篇: 使用gitlab初次上传代码
- 下一篇: 简记模态对话框和非模态对话框