Puede truncar cadenas con un especificador printf
de campos de ancho:Especificando el ancho máximo de campo printf para números (truncando si es necesario)?
printf("%.5s", "abcdefgh");
> abcde
Por desgracia, no funciona para los números (en sustitución de d
con x
es lo mismo):
printf("%2d", 1234); // for 34
printf("%.2d", 1234); // for 34
printf("%-2d", 1234); // for 12
printf("%-.2d", 1234); // for 12
> 1234
¿Hay un fácil/forma trivial de especificar el número de dígitos que se imprimirán aunque signifique truncar un número?
MSDN específicamente says that it will not happen que parece innecesariamente limitante. (Sí, se puede hacer creando cadenas y cosas por el estilo, pero espero un “printf trick” o kludge inteligente.)
Si desea truncar desde la izquierda, asumiendo los valores son números enteros, solo se dividen. Ejemplo: '1234/100 // for 12' –
@ortang, sí, lo sé, pero es [no es lo mismo que truncar desde la derecha] (http://stackoverflow.com/questions/9953125/9957649?noredirect= 1 # comment34294951_22533677). – Synetech