Usando sprintf y la sintaxis general "%AB" puedo hacer esto:
double a = 0.0000005l; char myNumber[50]; sprintf(myNumber,"%.2lf",a);¿Puedo configurar A y B dinámicamente en la cadena de formato?
Si tu puedes hacerlo. Debe usar un asterisco * como ancho de campo y .* como precisión. Luego, debe proporcionar los argumentos que llevan los valores. Algo como
sprintf(myNumber,"%*.*lf",A,B,a); Nota: A y B deben ser de tipo int . Del estándar C11 , capítulo §7.21.6.1, función fprintf()
... un ancho de campo, o precisión, o ambos, pueden indicarse con un asterisco. En este caso, un argumento
intproporciona el ancho o la precisión del campo. Los argumentos que especifican el ancho del campo, o la precisión, o ambos, aparecerán (en ese orden) antes del argumento (si lo hay) a convertir. Un argumento de ancho de campo negativo se toma como un indicador-seguido de un ancho de campo positivo. Un argumento de precisión negativo se toma como si se omitiera la precisión.