Output long double to console

时间:2016-07-11 19:40:19

标签: c++ qt long-double

I tried to output a long double to the console directly using qDebug() and indirectly via QString::number() but both do not accept long double.

Is it true that there is no easy way of printing a long double floating point number to the console using Qt? Why?!

2 个答案:

答案 0 :(得分:2)

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

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

当然,这不会向你展示任何额外的精确度,但可能就是你所需要的。

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

答案 1 :(得分:0)

没有首要原因。至少从Qt 5.6开始,没有人愿意实施它。就是这样。