概要
在使用Qt时,通过qDebug()
输出浮点数时有机会遇到一个细微错误。 问题在于显示的可能并不完整。 std::cout
有相同的问题。
情况可能发生在以下情况:
您有一个QString
对象,它包含一定数量的8564.26495574
,我们使用toDouble()
方法将其转换为浮点数,然后用输出qDebug()
检查结果,但是运气不好,输出不正确。
QString str("8564.26495574");
qDebug() << str.toDouble();
// 输出 -> 8564.26
但实际上我们有绝对正确的数字,也就是从字符串中得到的数字8564.26495574
,但qDebug()显示了舍入结果。
如果您尝试为qDebug()
使用double
,则会观察到同样的情况。
double a = 8564.26495574;
qDebug() << a;