콘솔에 qDebug()
을 직접 사용하고 간접적으로 QString::number()
을 통해 출력하려고 시도했지만 모두 long double
을 허용하지 않습니다.콘솔에 long double을 출력하십시오.
long double
부동 소수점 숫자를 Qt를 사용하여 콘솔에 인쇄하는 쉬운 방법이 없다는 것이 사실입니까? 왜?!
콘솔에 qDebug()
을 직접 사용하고 간접적으로 QString::number()
을 통해 출력하려고 시도했지만 모두 long double
을 허용하지 않습니다.콘솔에 long double을 출력하십시오.
long double
부동 소수점 숫자를 Qt를 사용하여 콘솔에 인쇄하는 쉬운 방법이 없다는 것이 사실입니까? 왜?!
가장 중요한 이유는 없습니다. 적어도 Qt 5.6부터는 아무도 그것을 구현하기가 어려웠습니다. 그게 다야.
QDebug& operator<<(QDebug& d, long double f)
{
return d << static_cast<double>(f);
}
이것은 물론, 당신에게 여분의 정밀도를 표시하지 않습니다,하지만 당신이 필요로 할 수있다 :
당신은 operator<<()
의 자신의 과부하를 제공 할 수 있습니다.
그러나 향후 버전의 Qt가 이러한 기능을 구현하여 사용자를 1 정의 규칙에 위배 될 수 있음에 유의하십시오. 이를 피하려면 충돌하는 정의를 제공하지 않는 것으로 확인한 정확한 Qt 버전 (또는 버전 범위)에 대한 적절한 #if
테스트를 통해이를 지켜야합니다. 또한 contributing your implementation to Qt을 고려하십시오.
'long double'은 더 이상 공간을 차지할 필요가 없으므로 '이중'이라고 생각했을 수 있습니다. – NathanOliver
@ NathanOliver : 플랫폼에 따라 다릅니다. 16 비트 Windows는 'long double'에는 80 비트를 사용하고 'double'에는 64 비트를 사용합니다. 다른 예가 있으면 놀랄 일이 아닙니다. –
사용할 수 있습니다. http://stackoverflow.com/questions/2326850/long-double-to-string – demonplus