Quiero "escribir en cadena" un número y agregar relleno cero, por ejemplo, cómo printf("%05d")
agregaría ceros a la izquierda si el número es inferior a 5 dígitos.Convertir un int a un QString con cero relleno (ceros a la izquierda)
Respuesta
Utilice esta:
QString number = QString("%1").arg(yourNumber, 5, 10, QChar('0'));
5 corresponde en este caso a 5 en printf("%05d")
. 10 es la raíz, puede poner 16 para imprimir el número en hexadecimal.
Estaba intentando esto (lo cual funciona, pero engorroso).
QString s;
s.setNum(n,base);
s = s.toUpper();
presision -= s.length();
while(presision>0){
s.prepend('0');
presision--;
}
Probar:
QString s = s.sprintf("%08X",yournumber);
EDIT: De acuerdo con los documentos en http://qt-project.org/doc/qt-4.8/qstring.html#sprintf:
Advertencia: no se recomienda el uso de QString :: sprintf() en el nuevo Código Qt. En su lugar, considere utilizar QTextStream o arg(), que admiten cadenas Unicode sin problemas y son seguros para el tipo. Aquí hay un ejemplo que usa QTextStream:
QString result;
QTextStream(&result) << "pi = " << 3.14;
// result == "pi = 3.14"
Lea los otros documentos para las características que faltan en este método.
bien, sin marcar como la mejor solución, ya que la respuesta actualmente marcada es más flexible. ¡Pero es bueno saber! (Voto ascendente) – elcuco
El Ejemplo corta:
int myNumber = 9;
//Arg1: the number
//Arg2: how many 0 you want?
//Arg3: The base (10 - decimal, 16 hexadecimal - if you don't understand, choose 10)
// It seems like only decimal can support negative numbers.
QString number = QString("%1").arg(myNumber, 2, 10, QChar('0'));
Output will be: 09
I utilizar una técnica desde VB 5
QString theStr=QString("0000%1").arg(theNumber).right(4);
Mucho memcpy() y un registro de memoria/CPU perdida. Si estás usando Qt/C++ quieres un rendimiento (dicho esto, vi este truco usando JS, y es un buen truco en esa plataforma). – elcuco
¡No te rindas! –
QString QString :: RightJustified (ancho int, QChar llenar = QLatin1Char (''), bool truncate = false) const
int myNumber = 99;
QString result;
result = QString::number(myNumber).rightJustified(5, '0');
resultado es ahora 00099
gracias, estoy creando una cadena sobre la marcha usando + = para que la solución seleccionada no pueda ser utilizada. –
- 1. JSTL relleno int con ceros a la izquierda
- 2. Cómo convertir int a QString?
- 3. int.Parse() con ceros a la izquierda
- 4. número Display con ceros a la izquierda
- 5. Entero con ceros a la izquierda
- 6. Relleno un número fijo con ceros a la izquierda hasta una longitud fija
- 7. ¿Cómo incrementar un valor con ceros a la izquierda?
- 8. ¿Convierte int (número) a una cadena con ceros a la izquierda? (4 dígitos)
- 9. Convertir haskell Int con cero inicial a la cadena
- 10. Dar formato a un número que contiene un punto decimal con ceros a la izquierda
- 11. mostrar cero a la izquierda en un gtk.SpinButton
- 12. Cuente ceros a la izquierda en un Int32
- 13. ceros a la izquierda en raíles
- 14. printf con ceros a la izquierda en C
- 15. contadores css anidadas con ceros a la izquierda
- 16. Cadena de relleno a la izquierda
- 17. jQuery Animate relleno a cero
- 18. Cadena de formato, número entero con ceros a la izquierda
- 19. Hace "int a = int();" necesariamente darme un cero?
- 20. ¿Cómo puedo generar ceros a la izquierda en Ruby?
- 21. Cómo convertir un NSInteger a un int?
- 22. ¿Cómo convertir un Enum a un int?
- 23. C# Cantidad de relleno con ceros
- 24. ¿Cómo puedo rellenar un int con los ceros a la izquierda cuando uso el operador cout <<?
- 25. C# convertir un decimal a un int con seguridad
- 26. En Kotlin ¿Cómo puedo convertir un int? a un Int
- 27. ¿Convertir el campo nulo a cero antes de convertir a int?
- 28. Ceros a la izquierda en el plugin JQuery Countdown Clock
- 29. cómo convertir std :: string a QString
- 30. ¿Cómo convierto un entero en una cadena con ceros a la izquierda en Tcl?
Gracias. Documentación [aquí] (http://qt-project.org/doc/qt-4.8/qstring.html#arg-10). – migas
Muy útil para crear códigos hexadecimales a partir de enteros, gracias :) – Michal
¿Y por qué el argumento de cadena es '"% 1 "'? – dhein