Se ho variabile di tipo float e voglio ottenere l'output con 3 cifre dopo il punto decimale, utilizzando iostream in C++. Come posso farlo?Uscita flusso C++ con 3 cifre dopo il punto decimale. Come?
risposta
Questo non mostrare "13,141"
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
double f = 13.14159;
cout << fixed;
cout << setprecision(3) << f << endl;
return 0;
}
È possibile ottenere il numero di cifre decimali (e tante altre cose) fissato utilizzando l'intestazione iomanip
. Per esempio:
#include <iostream>
#include <iomanip>
int main() {
double pi = 3.141592653589;
std::cout << std::fixed << std::setprecision(2) << pi << '\n';
return 0;
}
uscita volontà:
3.14
notare che sia fixed
e setprecision
modificare lo streaming in modo permanente in modo, se si vuole localizzare gli effetti, è possibile salvare le informazioni in anticipo e ripristinarlo successivamente :
#include <iostream>
#include <iomanip>
int main() {
double pi = 3.141592653589;
std::cout << pi << '\n';
// Save flags/precision.
std::ios_base::fmtflags oldflags = std::cout.flags();
std::streamsize oldprecision = std::cout.precision();
std::cout << std::fixed << std::setprecision(2) << pi << '\n';
std::cout << pi << '\n';
// Restore flags/precision.
std::cout.flags (oldflags);
std::cout.precision (oldprecision);
std::cout << pi << '\n';
return 0;
}
L'uscita che è:
3.14159
3.14
3.14
3.14159
Grazie per aver mostrato come salvare e ripristinare le impostazioni del flusso, molto utile. – bhaller
usa questa riga "using namespace std;" per ulteriori codice pulito –
@Khaled, ci sono argomenti a favore e contro che sono abbastanza complessi da non rientrare in una casella di commento :-) Io preferisco i namespace espliciti per tutti tranne i programmi più semplici o, come minimo, utilizzando elementi specifici * all'interno di * uno spazio dei nomi anziché importare l'intero lotto. Tuttavia, quella particolare discussione è tangenziale alla domanda e alla mia risposta. – paxdiablo
- 1. Stampa float PHP con 3 cifre dopo il punto decimale?
- 2. LISP - cifre dopo il punto decimale
- 3. Come restituire il numero float con 2 cifre dopo il punto decimale?
- 4. Come utilizzare il filtro float per mostrare solo due cifre dopo il punto decimale?
- 5. printf% f con solo 2 numeri dopo il punto decimale?
- 6. Impostare il numero di cifre dopo il punto in doppio
- 7. con 3 cifre decimali finali, un separatore decimale di migliaia e virgole dopo quello
- 8. Java: come ottengo la parte dopo il punto decimale?
- 9. Come tagliare gli zeri dopo il punto decimale
- 10. Numero massimo di cifre dopo la virgola decimale utilizzando BigDecimal
- 11. vuole visualizzare esattamente 2 cifre dopo il punto
- 12. Ottiene l'ultimo (ovvero endswith) 3 cifre di un decimale (.NET)
- 13. Precisione float Python senza precisione intera dopo il punto decimale
- 14. Lasciare solo due cifre decimali dopo il punto
- 15. : Precisione del punto decimale sull'asse
- 16. Da Doppio a Decimale senza arrotondamento dopo 15 cifre
- 17. Errore uscita flusso Unicode C++ di Windows
- 18. In Perl, come posso limitare il numero di posti dopo il punto decimale ma non avere zero finali?
- 19. Come posso inserire un punto decimale prima delle ultime tre cifre di un numero?
- 20. Come cambiare il simbolo per il punto decimale in double.ToString()?
- 21. aiuto con Regex - serve fino a 3 numeri dopo il punto (.)
- 22. Crea 3 millisecondi cifre con PHP
- 23. zeri NSDecimalNumber seguenti punto decimale (iPhone SDK)
- 24. flusso collegamento uscita chiusa
- 25. Dividi il doppio in due int, un int prima del punto decimale e uno dopo
- 26. rotonda decimale annullabile a 5 cifre decimali
- 27. Formattare un numero contenente un punto decimale con zeri iniziali
- 28. Rimuovi il punto decimale dal numero in JavaScript
- 29. Come visualizzare uscita con due cifre di precisione
- 30. cv :: Mat mat, COME Ridurre le cifre a destra del punto decimale in cv :: Mat?
Grazie. È stato utile per me. – ozeron
Questo funziona per 3,14159 ma non funziona per 13.14159. La tua soluzione funziona solo con numeri inferiori a 10. – mantler
@manler Hai ragione, il mio post originale no, ma quello finale (quello che ho editato 11 minuti fa) funziona correttamente. L'ho verificato con 2 e 3 cifre prima del punto decimale, e stampa 3 cifre come previsto. – dasblinkenlight