输出 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.
我尝试直接使用 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.