Si tengo variable de tipo flotante y quiero obtener una salida con 3 dígitos después del punto decimal, usando iostream en C++. ¿Cómo puedo hacerlo?Salida de flujo en C++ con 3 dígitos después del punto decimal. ¿Cómo?
Respuesta
Ésta no mostrar "13.141"
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
double f = 13.14159;
cout << fixed;
cout << setprecision(3) << f << endl;
return 0;
}
Puede obtener el número de dígitos fraccionarios (y muchas otras cosas) fija mediante el uso de la cabecera iomanip
. Por ejemplo:
#include <iostream>
#include <iomanip>
int main() {
double pi = 3.141592653589;
std::cout << std::fixed << std::setprecision(2) << pi << '\n';
return 0;
}
la Salida:
3.14
Tenga en cuenta que tanto fixed
y setprecision
cambio de la corriente de forma permanente por lo que, si se desea localizar los efectos, puede guardar la información de antemano y restaurarlo posteriormente :
#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;
}
La salida del que es:
3.14159
3.14
3.14
3.14159
Gracias por mostrar cómo guardar y restaurar la configuración de la transmisión, muy útil. – bhaller
use esta línea "using namespace std;" para obtener más código de limpieza –
@Khaled, existen argumentos a favor y en contra de eso que son lo suficientemente complejos como para que no encajen dentro de un cuadro de comentarios :-) Yo prefiero los espacios de nombres explícitos para todos menos los programas más simples o, como mínimo, el uso de elementos específicos * dentro de * un espacio de nombres en lugar de importar todo el lote. Sin embargo, esa discusión particular es tangencial a la pregunta y mi respuesta. – paxdiablo
- 1. Imprimir float PHP con 3 dígitos después del punto decimal?
- 2. LISP - dígitos después del punto decimal
- 3. ¿Cómo usar el filtro de flotador para mostrar solo dos dígitos después del punto decimal?
- 4. ¿Cómo devolver el número de flotante con 2 dígitos después del punto decimal?
- 5. Punto flotante con 2 dígitos después del punto
- 6. Cómo recortar ceros después del punto decimal
- 7. Precisión del doble después del punto decimal
- 8. Parámetro doble con 2 dígitos después del punto en strings.xml?
- 9. Establezca el número de dígitos después del punto en doble
- 10. ayuda con Regex - necesita hasta 3 números después del punto (.)
- 11. printf% f con solo 2 números después del punto decimal?
- 12. desea mostrar exactamente 2 dígitos después del punto
- 13. ¿Cómo obtener los números después del punto decimal? (Java)
- 14. Java: ¿cómo obtengo la parte después del punto decimal?
- 15. Eliminación de caracteres después del punto decimal para un doble
- 16. Significado de dígitos después NaN en Python decimal objeto
- 17. En Perl, ¿cómo puedo limitar el número de lugares después del punto decimal pero no tener ceros finales?
- 18. ¿Cuantos números después del punto decimal puedes mostrar usando R?
- 19. Dividir el doble en dos int, un int antes del punto decimal y uno después de
- 20. iPhone: Cuantos dígitos debería haber después de un punto flotante
- 21. ¿Cómo puedo insertar un punto decimal antes de los últimos tres dígitos de un número?
- 22. limitación dígito desde el punto decimal en C++
- 23. Cómo cambiar el símbolo del punto decimal en double.ToString()?
- 24. C# Regex - Quite el punto decimal cuando no esté entre dos dígitos
- 25. Cómo usar punto flotante decimal en Gnu C++ (g ++)?
- 26. Crear 3 milisegundos dígitos con php
- 27. C++ manipulador de flujo a medida que cambia siguiente punto del flujo de
- 28. Punto decimal o coma decimal en Android
- 29. ¿Cómo redondear el número decimal a 2 dígitos en iphone?
- 30. MYSQL: DECIMAL con una precisión de 10 dígitos después de la coma
Gracias. Fue útil para mí. – ozeron
Esto funciona para 3.14159 pero no funciona para 13.14159. Su solución solo funciona para números menores que 10. – mantler
@manler Tiene razón, mi publicación original no, pero la última (la que edité hace 11 minutos) funciona correctamente. Lo verifiqué con 2 y 3 dígitos antes del punto decimal, e imprime 3 dígitos como se esperaba. – dasblinkenlight