当前位置: 代码迷 >> QT开发 >> Qt中使用qDebug输出小数有关问题
  详细解决方案

Qt中使用qDebug输出小数有关问题

热度:284   发布时间:2016-04-25 03:09:05.0
Qt中使用qDebug输出小数问题
代码中有用到浮点计算的地方,想将变量输出查看值是否正确,但是输出的小数位全为零,例如两个整数相除的结果为0.75,但是输出的值却为零,而保留两位小数输出后为0.00,不能正常输出,请问是什么原因,如何才能正确输出,谢谢!
------解决思路----------------------
直接是去qDebug("%.2f", 1.02),格式输出就好了。你倒是先检查一下你的值对不对?
------解决思路----------------------
引用:
Quote: 引用:

直接是去qDebug("%.2f", 1.02),格式输出就好了。你倒是先检查一下你的值对不对?

我是通过计算公式得到的一个数值,这个数值赋值给了一个变量 然后在打印输出变量,值就不对了 像你给的例子那样单独输出一个小数是可以的 但是我用768/1024 然后赋值给一个变量 再输出结果就是0.00 这种是什么原因导致的?


和Qt没关系,和浮点数也没关系,768/1024 结果本来就是 0
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

直接是去qDebug("%.2f", 1.02),格式输出就好了。你倒是先检查一下你的值对不对?

我是通过计算公式得到的一个数值,这个数值赋值给了一个变量 然后在打印输出变量,值就不对了 像你给的例子那样单独输出一个小数是可以的 但是我用768/1024 然后赋值给一个变量 再输出结果就是0.00 这种是什么原因导致的?


和Qt没关系,和浮点数也没关系,768/1024 结果本来就是 0


这是整数除法,得出的结果为整数
请用:768./1024
或者768.0/1024.0之类的
------解决思路----------------------
            double a;
            int b = 7, c = 9;
            a =(double) b / c;
            qDebug("%02f", a);

这样才行, 你要强转一下, 不然两个整型相除的结果, 就是整型0
------解决思路----------------------
引用:
Quote: 引用:

直接是去qDebug("%.2f", 1.02),格式输出就好了。你倒是先检查一下你的值对不对?

我是通过计算公式得到的一个数值,这个数值赋值给了一个变量 然后在打印输出变量,值就不对了 像你给的例子那样单独输出一个小数是可以的 但是我用768/1024 然后赋值给一个变量 再输出结果就是0.00 这种是什么原因导致的?

计算之前强制转换(float)768/1024
------解决思路----------------------
Tamce和zxd421308862都说的很正确