Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: febef en 19 Noviembre 2012, 05:25 am



Título: ayuda con tipos QT
Publicado por: febef en 19 Noviembre 2012, 05:25 am


Hola, no logro encontrar como convertir un qreal en c++ usando la libreria QT a un int...

estaria agradecidicimo si me pudieran ayudar!! :)


Título: Re: ayuda con tipos QT
Publicado por: avesudra en 19 Noviembre 2012, 17:32 pm
Hola fex , en Qt la mayoría de tipos generales son typedef's de otros , es decir una sustitución por otro nombre , si te fijas en la documentación de los tipos de Qt aquí:
http://qt-project.org/doc/qt-4.8/qtglobal.html
Podrás ver que un qreal es un typedef del tipo double en todas las plataformas excepto para aquellas que usan CPUs con arquitecturas ARM. En las plataformas basadas en ARM, un qreal es un typedef de float por razones de rendimiento.
Cito el texto en esa página:
Código:
typedef qreal

Typedef for double on all platforms except for those using CPUs with ARM architectures. On ARM-based platforms, qreal is a typedef for float for performance reasons.
Te pongo esto porque no te explicaste bien y creo que realmente lo que quieres es convertir un qreal a un qint para quitar decimales.Para eso creo que puedes poner esto:
Código
  1. qint32 numeroEnEntero= 0;
  2. qreal numeroEnReal = 4.54;
  3. numeroEnEntero = (qint32) numeroEnReal;
  4.  
Con eso debería funcionarte , si nó al ser un double se le puede hacer un cast a int porque básicamente es lo mismo:
Código
  1. qint32 numeroEnEntero= 0;
  2. qreal numeroEnReal = 4.54;
  3. numeroEnEntero = (int) numeroEnReal;
  4.  


Título: Re: ayuda con tipos QT
Publicado por: febef en 19 Noviembre 2012, 19:31 pm
gracias avesudra  :D!


Título: Re: ayuda con tipos QT
Publicado por: BlackZeroX en 20 Noviembre 2012, 02:30 am
usa static_cast

Código
  1.  
  2. qint32 numeroEnEntero(0);
  3. qreal numeroEnReal(4.54);
  4.  
  5. numeroEnEntero = static_cast<qint32>(numeroEnReal);
  6.  
  7.  

también puedes usar la clase QVariant...

http://doc.qt.digia.com/qt/qvariant.html#convert
http://doc.qt.digia.com/qt/qvariant.html#Type-enum


Dulces Lunas!¡.