Я пытался вывести long double
в консоль напрямую, используя qDebug()
и косвенно через QString::number()
но оба не принимают long double
,
Правда ли, что нет простого способа распечатать long double
число с плавающей запятой на консоли, используя Qt? Зачем?!
Там нет всеобъемлющей причины. По крайней мере, в Qt 5.6 никто не удосужился реализовать это. Это все.
Вы можете обеспечить свою собственную перегрузку operator<<()
:
QDebug& operator<<(QDebug& d, long double f)
{
return d << static_cast<double>(f);
}
Конечно, это не покажет вам никакой дополнительной точности, но может быть тем, что вам нужно.
Имейте в виду, однако, что в будущей версии Qt такая функция может быть реализована, что нарушает правило единого определения. Чтобы избежать этого, вы должны охранять его с соответствующим #if
проверка для точной версии Qt (или диапазона версий), которую вы проверили, не дает противоречивого определения. Также, пожалуйста, примите во внимание внесение вашей реализации в Qt.