float - setprecision c++ para que sirve
Uso correcto de std:: cout.precision()-no imprime ceros finales (3)
El comportamiento es correcto. El argumento especifica la cantidad máxima significativa de dígitos a usar. No es un mínimo. Si solo siguen los ceros, no se imprimen porque los ceros al final de una parte decimal no son significativos. Si desea que se impriman los ceros, debe establecer los indicadores apropiados:
std::cout.setf(std::ios::fixed, std::ios::floatfield);
Esto establece la notación en "fijo", que imprime todos los dígitos.
Veo muchas preguntas sobre el número de precisión para los números de punto flotante, pero específicamente quiero saber por qué este código
#include <iostream>
#include <stdlib.h>
int main()
{
int a = 5;
int b = 10;
std::cout.precision(4);
std::cout << (float)a/(float)b << "/n";
return 0;
}
muestra 0.5
? Espero ver 0.5000
. ¿Es debido a los tipos de datos enteros originales?
std::cout.precision(4);
indica el número máximo de dígitos que se debe usar, no el mínimo. eso significa, por ejemplo, si usas
precision 4 on 1.23456 you get 1.234
precision 5 on 1.23456 you get 1.2345
Si desea obtener n
dígitos en todo momento, tendría que usar std::fixed
.
#include <iostream>
#include <stdlib.h>
#include <iomanip>
int main()
{
int a = 5;
int b = 10;
std::cout << std::fixed;
std::cout << std::setprecision(4);
std::cout << (float)a/(float)b << "/n";
return 0;
}
std::fixed
pasar std::fixed
manipulator a cout
para mostrar los ceros finales.