gpt4 book ai didi

c++ - 你能全局设置 qDebug() 浮点精度和数字格式吗?

转载 作者:可可西里 更新时间:2023-11-01 18:16:58 27 4
gpt4 key购买 nike

我想使用 qDebug()、qInfo() 等具有自定义默认浮点精度和数字格式的函数。

有没有办法在全局范围内定义它?

想象一下:

double num = 1.2;
qDebug() << "My floating point Number is: " << QString::number(num, 'f', 2);
//Output: My floating point Number is 1.20

现在我想避免每次写数字时使用 QString::number(num, 'f', 2) 并且更愿意使用标准的精度和格式。

最佳答案

QDebug 流的格式化 can be controlled通过QTextStream manipulators .因此,你必须调用

qDebug() << fixed << qSetRealNumberPrecision(2);

在程序的开头。

但是请注意,qDebug() 的格式化状态可能会在以后发生变化,如果一些(不是很仔细编写的)代码集需要格式化并且在完成它之后没有恢复到以前的状态工作。

编辑

事实证明,QTextStream 操纵器(至少与 qDebug() 结合使用)的效果仅限于包含语句并且不会持续存在。因此,您能做的最好的事情就是定义 qDebug() 的替换,如下所示:

#define myqDebug() qDebug() << fixed << qSetRealNumberPrecision(2)

并使用它代替 qDebug():

double num = 1.2;
myqDebug() << "My floating point Number is: " << num << endl;

输出:

My floating point Number is:  1.20

关于c++ - 你能全局设置 qDebug() 浮点精度和数字格式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39146527/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com