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?!
答案 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开始,没有人愿意实施它。就是这样。