2013-09-01 11 views
5

Qualcuno sa se è possibile utilizzare printf per stampare un numero VARIABILE di cifre?Stampa un numero variabile di cifre di un doppio utilizzando printf

La seguente riga di stampe codice esattamente 2:

printf("%.2lf", x); 

ma diciamo che ho una variabile:

int precision = 2; 

C'è un modo per utilizzare in printf per specificare il numero di cifre ?

Altrimenti dovrò scrivere una struttura "interruttore" o "se".

Grazie

risposta

8

E 'possibile:

#include <stdio.h> 

int main() { 
    int precision = 3; 
    float b = 6.412355; 
    printf("%.*lf\n",precision,b); 
    return 0; 
} 
+1

Perché lf per float? –

+0

per la precisione ... non importa, la tua risposta è ottima. Grazie. – pHbits

8

Sì, si può fare così facilmente -

int precision = 2; 
printf("%.*lf", precision, x); 
+0

Grazie. questo era esattamente quello che speravo. Ho usato C per molti anni e, in qualche modo, ho perso questo piccolo trucco. – pHbits

2

Se si utilizza C++, è possibile utilizzare setprecision:

#include <iostream> 
#include <iomanip>  // std::setprecision 

int main() { 
    int precision = 2; 
    double f =3.14159; 

    std::cout << std::setprecision(precision) << f << '\n'; 
    ++precision; 
    std::cout << std::setprecision(precision) << f << '\n'; 

    return 0; 
} 

Output:

3.1 
3.14 

Si può leggere di più su di esso here

+0

ansi c - non C++. Grazie comunque. – pHbits

+1

@ user2737130 La tua domanda è stata taggata 'C++' Per favore non tagga le domande 'C++' se stai usando 'C', porta a molte risposte che non possono essere usate. – olevegard

Problemi correlati