输出 long double 到控制台

Output long double to console

我尝试直接使用 qDebug() 并通过 QString::number() 间接输出 long double 到控制台,但两者都不接受 long double.

真的没有简单的方法可以使用 Qt 将 long double 浮点数打印到控制台吗?为什么?!

没有首要原因。至少从 Qt 5.6 开始,没有人费心去实现它。就这些了。

您可以提供自己的重载 operator<<():

QDebug& operator<<(QDebug& d, long double f)
{
    return d << static_cast<double>(f);
}

当然,这不会显示任何额外的精度,但可能是您需要的。

但是请注意,Qt 的未来版本可能会实现这样的功能,从而违反单一定义规则。为避免这种情况,您应该使用适当的 #if 测试来保护它,以确保您已验证的确切 Qt 版本(或版本范围)不会提供冲突的定义。另外,请考虑 contributing your implementation to Qt.