Вывести длинный двойной на консоль

Я пытался вывести long double в консоль напрямую, используя qDebug() и косвенно через QString::number() но оба не принимают long double,

Правда ли, что нет простого способа распечатать long double число с плавающей запятой на консоли, используя Qt? Зачем?!

0

Решение

Там нет всеобъемлющей причины. По крайней мере, в Qt 5.6 никто не удосужился реализовать это. Это все.

0

Другие решения

Вы можете обеспечить свою собственную перегрузку operator<<():

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

Конечно, это не покажет вам никакой дополнительной точности, но может быть тем, что вам нужно.

Имейте в виду, однако, что в будущей версии Qt такая функция может быть реализована, что нарушает правило единого определения. Чтобы избежать этого, вы должны охранять его с соответствующим #if проверка для точной версии Qt (или диапазона версий), которую вы проверили, не дает противоречивого определения. Также, пожалуйста, примите во внимание внесение вашей реализации в Qt.

2

По вопросам рекламы [email protected]